-1

我搜索了许多关于如何使用 C# 使用 webservices 方法的示例,但所有示例都说要右键单击并添加服务引用并键入地址。

但是我不知道为什么,但是我尝试连接的网络服务器不适用于此...

这里地址 https://bauru.sigiss.com.br/bauru/ws/sigiss_ws.php?wsdl

有人可以帮助我如何与这个特定的网络服务进行交互吗?

4

3 回答 3

3

使用WcfTestClient1会显示一个错误(这可能是您在导入时遇到的错误):

定义[@targetNamespace='urn:sigiss_ws']/wsdl:binding[@name='WebService SigISSBinding']XPath 到错误源://wsdl:definitions[@targetNamespace='urn:sigiss_ws']/wsdl:service[@ name='WebService SigISS']/wsdl:port[@name='WebService SigISSPort']警告:未生成代码。如果您尝试生成客户端,这可能是因为元数据文档不包含任何有效的合同或servicesor 因为发现所有合同/服务都存在于 /reference 程序集中。验证您是否将所有元数据文档传递给该工具。警告:如果您想从模式生成数据协定,请确保使用 /dataContractOnly 选项。sigiss_ws']/wsdl:service[@name='WebService SigISS']/wsdl:port[@name='WebService SigISSPort']警告:未生成代码。如果您尝试生成客户端,这可能是因为元数据文档不包含任何有效的合同或服务或因为发现所有合同/服务都存在于 /reference 程序集中。验证您是否将所有元数据文档传递给该工具。警告:如果您想从模式生成数据协定,请确保使用 /dataContractOnly 选项。sigiss_ws']/wsdl:service[@name='WebService SigISS']/wsdl:port[@name='WebService SigISSPort']警告:未生成代码。如果您尝试生成客户端,这可能是因为元数据文档不包含任何有效的合同或服务或因为发现所有合同/服务都存在于 /reference 程序集中。验证您是否将所有元数据文档传递给该工具。警告:如果您想从模式生成数据协定,请确保使用 /dataContractOnly 选项。这可能是因为元数据文档不包含任何有效的合同或服务,或者因为发现所有合同/服务都存在于 /reference 程序集中。验证您是否将所有元数据文档传递给该工具。警告:如果您想从模式生成数据协定,请确保使用 /dataContractOnly 选项。这可能是因为元数据文档不包含任何有效的合同或服务,或者因为发现所有合同/服务都存在于 /reference 程序集中。验证您是否将所有元数据文档传递给该工具。警告:如果您想从模式生成数据协定,请确保使用 /dataContractOnly 选项。

我对该服务知之甚少,但您可以看一下Can I create an element with forward slash as part of name并发现它可能是用于装饰属性的属性(其中有一个空格) .

1 WcftestClient 通常可以在C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\

于 2013-06-12T19:53:57.483 回答
2

最后我找到了一个和我有同样问题的人!他说要做到以下几点:

对于 Windows Vista、Windows 7 e Server 2008:开始>运行 Regedit HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SecurityProviders/Schannel/Protocols

            Right Click on  Protocols -> New -> Key
            Name: TLS 1.0

            Right Click on the new key -> New -> Key
            Name: Client

            Select the created folder (Client), right click New -> Value DWORD
            Name: Enabled

之后,只需添加对您项目的引用。为避免在您的应用用户中发生同样的情况,请在实例化 Web 服务之前强制使用 SSL:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;

于 2013-06-13T15:32:20.023 回答
2

如果由于某种原因您无法访问它(例如,在您工作的地方使用了代理服务器),那么只需转到浏览器中的 WSDL,将页面保存为磁盘上的 XML 文件,然后添加服务引用再次不要输入 Web URL,将其路径放在磁盘上(例如 C:\temp\wsdl.xml)。

于 2013-06-12T19:54:15.517 回答