Tag: web services

我可以停止服务引用生成ArrayOfString而不是string 吗?

我有一个带有这样签名的web方法: public string[] ToUpper(string[] values) 我在Visual Studio 2010中使用“添加服务引用”来生成对我的服务的引用。 不幸的是,这个过程创建了一个名为“ArrayOfString”的代理类,并使用这种类型而不是预期的’string []’类型。 生成的异步服务调用签名最终如下所示: public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values) { } public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values, object userState) { } 我已经尝试了配置服务参考表单中“收集”下拉列表的所有选项,但它似乎并没有什么区别。 这在以前工作,但由于某种原因它可能突然停止工作,可能是从服务中删除另一个Web方法。 如何让生成的服务引用类使用string []类型而不是生成的ArrayOfString类型? 任何有关这方面的帮助将不胜感激。 编辑:正如@Oleg建议的那样,我正在使用ASMX Web服务。

使用URI和Da​​taContract类参数编写Web服务方法

如何获取Web服务方法来访问URI和复杂POST数据中的参数? 我有一个Web服务方法,在URI中有一些参数: “/api/{something}/{id}” 我还有一个标有DataContract / Member属性的类,我希望webservice方法接受它。 请注意,我的类包含一个也标有DataContract / Member属性的子类。 [DataContract] public class MoreData{ [DataMember] public string SomeString { get; set; } [DataMember] public SubClass SubData {get; set;} } 我的方法声明如下: [OperationContract] [WebInvoke( Method = “POST”, UriTemplate = “/api/{something}/{id}”)] public MyWebSvcRetObj Update(string something, string id) 如何让我的Update方法也接受MoreData类? 我已经能够编写如下方法: [OperationContract] [WebInvoke( Method = “POST”)] public MyWebSvcRetObj Update(MoreData IncomingData) 但只有当URI没有指定任何参数时,URI才会显示 […]

从类库中使用asp.net应用程序中的Web服务

我的团队和我有一个asp.net Web表单应用程序,并使用几个类库。 在其中一个库中,我们尝试使用Web服务。 Web引用已添加到Web应用程序项目中,并添加了相应的引用。 该应用程序编译。 尝试在类库中使用所述Web服务时,凭据似乎不起作用,并且调用失败。 但是,如果我们从类库中取出Web服务调用,并在Web应用程序中使用它,它就可以工作。 任何想法为什么这不适用于类库。

使用单个控制台应用程序托管两个WCF服务

我试图使用一个控制台应用程序托管两个服务。 但是,当我尝试这样做时,只有一个服务被托管,而另一个服务没有。 Program.cs中: namespace WWWCFHost { class Program { static void Main(string[] args) { using (ServiceHost host = new ServiceHost(typeof(WWWCF.Login))) { host.Open(); Console.WriteLine(“Service1 Started”); } using (ServiceHost host1 = new ServiceHost(typeof(WWWCF.UserRegistration))) { host1.Open(); Console.WriteLine(“Service2 Started”); Console.ReadLine(); } } } } App.config中 在上面的代码中,我试图在端口8080上托管一个服务,而另一个在端口8090上托管。当我运行应用程序时,第一个服务启动然后自动关闭,第二个服务仍然启动。 如何同时托管这两项服务? 我已经浏览了这个链接: 两个WCF服务,托管在一个控制台应用程序中 我也经历过其他线索。但他们没有解决我的问题。 如果需要,将很乐意提供任何进一步的细节。

哪个C#SOAP客户端库最容易使用?

我想使用C#连接到SOAP Web服务。 在我直接进入之前,尝试谷歌向我投掷的任何东西,我想问一下,在我完成大部分工作的情况下,最干净,最好的方法是什么。 我想要一个高级方法,我给它一个WSDL,它基本上会为我处理很多事情。 我当然不想要做任何XML,除了看它正在做什么调试。 微软为此做的最好的最好的库/方法是什么? 请注意,我更关心的是优化开发人员的时间而不是性能,尽管这种情况可能没什么区别。

反序列化请求消息正文以进行操作时出错

我正在编写一个服务适配器来使用由另一个供应商(Pega)托管的Web服务。 更改此服务不适合我。 当我调用方法时,我收到错误: “反序列化操作请求消息的主体时出错” 我尝试增加maxStringContentLength和所有。 没有任何效果。 在检查响应XML时,我看到几个long和int变量的空值我相信这就是原因。 这有什么问题吗?

ASP.NET Web服务模板不存在?

我使用.Net framework 4完整安装了Visual Studio 2010 。 我想创建我的第一个Web服务。 但不存在Web服务模板。 在visual studio 2010中,我转到File – > New Web Site菜单,但在New Web Site对话框中不存在ASP.NET Web Service模板。 如何创建Web服务?

为什么我不能在.NET asmx Web服务中公开接口?

我有一个.NET Web服务(使用asmx …还没有升级到WCF)暴露了以下内容: public class WidgetVersion1 : IWidget {} public class WidgetVersion2 : IWidget {} 当我尝试绑定到Web服务时,出现以下序列化错误: 无法序列化IWidget类型的成员WidgetVersion1,因为它是一个接口。 我已经尝试将各种属性添加到IWidget接口( XmlIgnore , SoapIgnore , NonSerialized ),但它们在接口上无效。 有谁知道为什么我无法公开界面? 我假设WSDL不支持接口,但是.NET不能通过简单地不对接口进行序列化来解决这个问题吗? 除了从WidgetVersion1和WidgetVersion2类定义中删除IWidget接口之外,还有什么方法吗?

如何防止out-parameter结束WCF Web服务中的返回参数?

如果我的合同如下: [OperationContract] void DoSomething(int id, out string moreInfo); 这最终看起来像: string DoSomething(int id); 导入Web服务引用时。 是否有可能影响参数顺序的自动转换? 在函数签名的开头找到所有out参数已经令人惊讶了,但这仍然可行,但我们希望void-methods继续作为void-methods。 或者这是SOAP限制?

XML序列化,编码

using System; public class clsPerson { public string FirstName; public string MI; public string LastName; } class class1 { static void Main(string[] args) { clsPerson p=new clsPerson(); p.FirstName = “Jeff”; p.MI = “A”; p.LastName = “Price”; System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType()); x.Serialize(Console.Out, p); Console.WriteLine(); Console.ReadLine(); } } 取自http://support.microsoft.com/kb/815813 1) System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType()); 这条线做什么? […]