Tag: web services

如何在Web服务中初始化静态变量

我想知道如何在Web服务C#类的构造函数中初始化一些静态变量,以便每次调用Web方法都可以使用这些变量的内容。 例如,我想从数据库加载一些数据并在Web方法中使用它。 这种静态变量是只读的。 目的是只加载一次这样的值。 或者每次调用Web方法时都会执行构造函数?

Webreferences共享类

我用Java编写了一些SOAP Webservices,在JBoss 5.1上运行。 其中两个人共享一个类AddressTO。 Webservices正在我的ApplycationServer上正确部署,一切顺利,直到我尝试在C#-client中使用class addressTO。 客户端应用程序中有两种类型,addressTO和addressTO1。 这是一个问题,因为这会导致如下错误: Fehler 1 Eine implizite Konvertierung vom Typ “acsysteme.i4workspace.client.webservices.addressTO1[]” in “acsysteme.i4workspace.client.webservices.addressTO[]” ist nicht möglich. […] 这意味着无法隐式转换为类型。 AddressTo类似于核心类,可供其他Web服务使用。 C#-client的Web引用由命令创建 wsdl.exe /parameters:CreateWebService.xml xml文件包含我的webservices的differend .wsdl文件的URL。 有人知道如何处理这个问题吗?

从WCF客户端连接到服务器的问题 – HTTPS端点 – 适用于本地开发但不适用于服务器

更新日志: 添加了更多详细信息 – 包括WCF跟踪。 首先,不是很多WCF经验,所以如果这是一个明显的错误,请道歉。 我正在编写一个简单的控制台应用程序,需要连接到第三方SOAP Web服务。 供应商提供的WSDL在这里: http://pastebin.com/LJurv0qA 我已经使用它在Visual Studio 2010(使用.NET 4.0)中创建服务引用来创建后面自动生成的代码。 我还为各种配置设置了app.config: <!—-> <!—-> 现在在我的LocalDevelopment框(即我的笔记本电脑)上,客户端工作正常,我可以使用他们的Logon()操作连接到第三方服务。 当我将我的代码部署到我们的测试服务器时,相同的代码和配置,n会引发以下exception: 日志文件已开始:18/11/2015 20:11:25在机器TESTSERVER上================================= =========================================== 18/11/2015 20: 11 >>>> ***已记录的应用程序:登录日期:18/11/2015 20:11:25消息:客户端问题(Client.Logon()) – 通信问题 – 消息:发出HTTP请求时发生错误to test.jsp。 这可能是由于在HTTPS情况下使用HTTP.SYS未正确配置服务器证书。 这也可能是由客户端和服务器之间的安全绑定不匹配引起的。 堆栈跟踪: 服务器堆栈跟踪:在System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException,HttpWebRequest request,HttpAbortReason abortReason) System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)at System.ServiceModel.Channels.RequestChannel.Request(Message message,TimeSpan timeout)at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message,TimeSpan) System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs,TimeSpan timeout)System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage […]

服务引用不是创建方法

我正在尝试将SOAP Web服务的服务引用添加到我的ASP.NET MVC应用程序中,因此我可以从此处使用Web服务。 问题是,服务引用没有创建我可以在常规应用程序中使用的任何类或方法,它只定义了两个接口和许多数据类型。 也许我错了,但是正如我理解的那样,服务引用应该创建一个类,我可以使用它来调用服务上的不同方法。 然后我的工作是将我的业务模型数据转换为Web服务的数据类型,以便我可以向方法发送参数并使用它们的响应。 我做错了,应该使用不同的方法来使用外部SOAP Web服务吗?

Web服务命名空间动态命名

我有一个web-service ,我将部署到dev,staging和production。 除此之外, ASP.net应用程序将单独部署,但也将分三个阶段进行部署。 在Web服务中更改以下行以匹配当前环境的最务实的方法是什么? [WebService(Namespace = “http://dev.mycompany.com/MyAppsWebService”)] [WebService(Namespace = “http://stage.mycompany.com/MyAppsWebService”)] [WebService(Namespace = “http://mycompany.com/MyAppsWebService”)]

如何在Web API中为所有数据成员全局设置EmitDefaultValue为false?

我正在使用Web API,并且我设置了以下属性,以便在序列化成员时不显示默认值: [DataMember(EmitDefaultValue = false)] public string EventName { get; set; } 我总共有大约20个DataContracts和100个属性作为DataMembers,那么如何才能将EmitDefaultValue全局设置为false? 我希望我不必使用Reflection编写自己的逻辑!

从文件目录添加WSDL文件

我有WSDL文件,我需要添加到我的项目作为Web引用。 它们位于我的本地目录中的.wsdl扩展名。 我从来没有像这样添加它们所以我不确定如何将它们添加为Web引用。 我找不到有用的东西。 有任何想法吗?

使用XmlTextReader

我是一名初学程序员,从C#和Web服务开始。 在我的Web服务的Service.cs文件中,我创建了一个ReadXMLFile()方法,我试图读取现有的XML文件,从中获取数据并将其放入我在IService.cs创建的相应属性(DataMembers)中。 IService.cs文件。 我的问题是我的代码基本上没有做任何事情。 我已经尝试过寻找网站和教程,但实际上并没有多少,特别是像我这样的初学者。 任何人都知道我应该怎么做,因为我到目前为止所做的事情显然是错误的。 下面是我的ReadXMLFile()方法。 void ReadXMLFile() { XmlTextReader reader = new XmlTextReader(“ClassRoll.xml”); reader.Read(); while (reader.Read()) { if (reader.Name == “id”) { id = reader.ReadString(); } else if (reader.Name == “firstname”) { link = reader.ReadString(); } else if (reader.Name == “lastname”) { description = reader.ReadString(); } else if (reader.Name == “count”) { description […]

ASMX webservice – 返回JSON而不是XML

我有一个包含一种方法的Web服务: [WebMethod] public string Movies() { using (var dataContext = new MovieCollectionDataContext()) { var query = dataContext.Movies.Select(m =>new{m.Title,m.ReleaseDate}).Take(20); var serializer = new JavaScriptSerializer(); return serializer.Serialize(query); } } 该方法正确地序列化了对象,但是当我在FireBug中查看响应时,它看起来像这样: [{“Title”:”SQL”,”ReleaseDate”:”\/Date(1224007200000)\/”},{“Title”:”Termonator Salvation”,”ReleaseDate”:”\/Date(1224007200000)\/”}] 这是我使用Kendo Data Source的jQuery方法 $(function () { alert(“Welcome To Kendo”); var dataSource = new kendo.data.DataSource( { transport: { read: { type: “POST”, dataType: “json”, url: “/MovieService.asmx/Movies” […]

在C#Web Service的WSDL文件中使用主机名会感到困惑

我在部署在Windows服务EXE中的C#中创建了一个WCF Web服务,该服务基本上按照我想要的方式工作。 我以自托管的方式使用它(不在IIS中)。 为了使WSDL文件可用于调用Java Web服务,我将ServiceMetadataBehavior添加到主机创建中。 即: ServiceHost host = new ServiceHost(typeof(MyService)); ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); smb.HttpGetEnabled = true; host.Description.Behaviors.Add(smb); host.Open(); 这一切都运行正常,直到我将我的服务移动到具有不同主机名的另一台服务器。 当我连接到WSDL(http:// prod-server:55000 / MyService?wsdl)时,我看到开发服务器的主机名在WSDL中是硬编码的。 以下是浏览器中的WSDL片段: 我检查了项目中的所有C#代码,并且开发服务器名称没有在任何地方进行硬编码。 在App.config文件中,我定义了以下内容: 我希望这会导致localhost机器名被替换,但它仍然作为最初创建/部署服务的开发盒名称而存在。 我错了吗? 我还研究了显式指定WSDL文件路径的可能性,但从我可以推断出的内容来看,只有在IIS上托管服务时才能这样做。 最后,纯粹出于好奇,我想知道是否实际创建了一个实际的WSDL文件(我认为是磁盘上的物理文件)还是每次请求都动态呈现?