Tag: wsdl

来自WSDL的详细ServiceDescription / Proxy

我使用ServiceDescription / ServiceDescriptionImporter类来动态调用Web服务。 我想更深入地了解WSDL描述并得到 1)每个Web方法的参数信息 2)所有Web方法的每个参数的实际类型/组成(即,如果WebMethod将某些复杂类型作为参数,我需要知道它由原型/其他类型组成,如果可能的话) 这是动态调用的代码: public static object CallWebService(string webServiceAsmx, string serviceName, string methodName, object[] args = null) { WebClient client = new WebClient(); Stream stream = client.OpenRead(webServiceAsmx + “?wsdl”); ServiceDescription description = ServiceDescription.Read(stream); ServiceDescriptionImporter importer = new ServiceDescriptionImporter(); importer.ProtocolName = “Soap12”; importer.AddServiceDescription(description, null, null); importer.Style = ServiceDescriptionImportStyle.Client; importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties; 我已经能够找到一些基本信息,如方法名称,参数信息,但我需要更深入的分析。 例如,我需要访问Wsdl.exe在代理类中生成的基本上所有信息,但我不想运行Wsdl.exe,只是动态发现信息。 […]

如何从wsdl中的xs:documentation标签生成注释?

阿罗哈 我收到了一个很好的wsdl与xs:documentation标签,如: The supplier of the product 有没有办法从这个生成/// 标签? 我正在使用visual studio 2008

如何在不发出http请求的情况下在c#中生成WSDL

问候,我想写一个unit testing,以确保我们的Web服务没有更改上一个已知发布版本的WSDL。 原因是因为对WSDL中对象的任何更改都将导致使用Apache Axis的客户端失败。 即使您所做的只是添加一个不需要的属性。 因此,如果存在更改,则需要提醒开发人员,因为产品管理需要向客户端传达有关更改的信息,以便他们可以在发布新WSDL时重新编译其存根。 所以我希望有这样的东西: [Test] public void TheWSDLHasNotChanged(){ XmlDocument currentWSDL = SomeMysteryServiceIDontKnowAbout.GetWSDLForWebServiceClass(typeof(UserService)); XmlDocument existingWSDL = new XmlDocument().Load(“ExistingWsdl.wsdl”); Assert.That(currentWSDL, Is.Equal.To(existingWSDL)); } 出于显而易见的原因,我不想向Web服务器发出请求(在运行unit testing时可能会运行甚至不运行)。

将WSDL导入.NET项目只会创建一个空命名空间

我第一次尝试使用WCF。 这是我做的: 在VS 2010中创建了一个控制台.NET 4项目 添加了WSDL文件作为服务引用。 但是,我似乎无法使用该服务,因为没有创建类。 服务引用只是一个空命名空间。 我错过了什么? 这是WSDL: main schema e-service developers Nicholas Knowles, KIZOOM LTD., London EC4A 1LT Europe >Drafted for version 1.0, by Cen TC278 WG3 SG7 Christophe Duquesne DRYADE SA mailto:schemer@siri.org.uk 2005-03-01 2005-05-11 2007-01-30 2007-04-17 2008-02-12 2007-04-17 SIRI is a European CEN standard for the exchange of real time information. […]

如何从C#中的wsdl SOAP请求信封转到

我需要在Web服务上调用操作,但我不知道请求信封的外观(服务在运行时由用户附加)。 一般来说,我想基于wsdl链接以编程方式生成soap信封。 使用给定的链接获取操作列表以及特定结果的结果: 任何人都知道如何做到这一点?

不显示SOAP服务的数据

我有一个涉及C#控制台客户端和Web服务的有趣问题。 我的怀疑是某个地方有一个名称空间错误或一些简单的事情,但八个小时茫然地盯着屏幕尚未透露它们,所以我想我会再尝试一些眼睛。 WSDL 请求XSD 响应XSD(缩短,因为它很大) 使用此WSDL,我在soapUI中获得以下请求和响应:SoapUI请求: 12345 SoapUI响应(为了便于阅读而缩短): 1 1 12345 PLU My dummy product 我已经尝试用svcutil生成代理并在C#中使用服务引用无济于事。 SoapUI按预期工作并返回数据,而C#获取一个空列表。 C#测试代码 class Program { static void Main(string[] args) { BOMPortTypeClient _client = new BOMPortTypeClient(); var state = _client.State; BOMRequestItem _reqItem = new BOMRequestItem { ProductNumber = “12345” }; IList _list = _client.BOM(_reqItem); } } 编辑:添加了来自.Net的请求/响应的Fiddler日志 .Net请求 12345 .Net响应 […]

即使我明确指定1.1,WCF自定义消息编码器也使用Soap1.2

我有一个自定义编码器连接到一个在水下使用TextMessageEncoding元素的customBinding。 我明确指出SOAP 1.1应该与WS Addressing 1.0一起使用。 正如我所说,我的自定义编码器在水下使用文本消息编码器; 编码器只是添加了一些调用我的服务的服务实现的标头。 当我在SOAPUI中添加生成的WSDL(使用SOAP 1.2,即使我在WS Addressing 1.0中指定了SOAP 1.1)并发送请求时,内容类型也不同,从而导致错误。 我认为这是因为WHILE生成WSDL,它使用Soap 1.2,但WHILE发送请求它尝试使用SOAP 1.1,即使使用SOAP 1.2发送消息。 有一些相关问题: 当我第一次使用 ,将WSDL添加到SOAPUI,然后将编码更改为我的自定义编码器并发送请求(这导致WSDL为Soap 1.1所以我想也许这将是一个非常hacky的解决方法),我得到以下错误: HTTP/1.1 415 Cannot process the message because the content type ‘text/xml;charset=UTF-8’ was not the expected type ‘text/xml; charset=utf-8’. 这里的问题是UTF-8是大写的,并且后面有空格; 。 我觉得这很奇怪,应该不是问题! 在Visual Studio中,自定义编码器有一条波浪线,表示The element ‘binding’ has invalid child element ‘MissingWSAddressingHeadersTextEncoding’. List of possible elements expected: […]

如何在不访问服务的情况下将WCF WSDL和XSD共享给客户端?

我尝试生成WSDL,然后使用客户端手动在WSDL中找到每个XSD。 该服务目前只在我的本地主机上,尚未发布。 客户端收到以下错误: 该文件已被理解,但无法处理。 WSDL文档包含无法解析的链接。 下载’http:// localhost:xxxx / MyService.svc?xsd = xsd0’时出错。 无法连接到远程服务器无法建立连接,因为目标计算机主动拒绝它127.0.0.1:xxxx 如何生成和共享服务WSDL和XSD,以便他们可以开始编写客户端代码(无需访问服务atm? 编辑 WSDL / XSD中与这些问题相关的问题 WSDL XSD 编辑2:感谢@The Indian Programmmer我能够使用此命令生成一个代理类来编程: “C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\svcutil.exe” -noconfig -namespace:*,SERVICE.INTERFACE.NAMESPACE -serializer:datacontractserializer https://My-PC/SvrLocation/MyService.svc?wsdl (托管在本地IIS中)

如何在C#中将我自己的wsdl包含在我的Web服务中

我有一个.wsdl文件,我的Web服务(旧的asmx样式)必须实现。 这是照顾。 当我发布Web服务时,您可以使用?wsdl参数调用它来获取生成的wsdl。 如何包含我的.wsdl文件,以便返回的文件而不是生成的文件? 是否可以在我的Web服务类中使用属​​性?

C#web-service客户端:具有相同(复杂)返回类型的多个Web服务方法?

我正在努力建立一个Java B2B Web服务的客户端,我想我已经确定了我们已经遇到的问题的原因已经有一段时间了。 不幸的是我无法发布WSDL。 显然,我的自动生成的代理代码(通过wsdl.exe:由于WCF不支持密码摘要而必须使用WSE 3.0)无法处理具有多个具有相同复杂返回类型的Web方法的Web服务的WSDL。 举例来说 – 一个定义以下方法的Web服务: Public ComplexTypeX Blah(); Public ComplexTypeX Blue(); Public ComplexTypeX Foo(); Public ComplexTypeY Bar(); 在我的Reference.cs文件中,如果我注释掉所有调用Blah(),Blue()或Foo()中的任何两个的代码,那么剩余的未注释方法可以被调用没有问题。 但是,如果我没有注释掉这三个方法中的多个(例如,Blah()和Foo()),那么在实例化 Web服务客户端代码时,我会收到以下错误消息: “方法Blah无法反映出来。” “命名空间’ http://some.url ‘中的XML元素’ComplexTypeX’引用方法和类型。使用WebMethodAttribute更改方法的消息名称,或使用XmlRootAttribute更改类型的根元素。” 现在,肯定没有将ComplexTypeX方法定义为Web服务的一部分,所以我只能假设.NET(或至少wsdl.exe)不允许您使用返回复杂的Web服务(用户定义) )跨多种方法的相同类型的类型……对吗?