为什么我必须添加对URL/service的引用?但是它会为URL/service.svc/soap创建一个绑定

本文关键字:service URL 创建 soap svc 绑定 一个 添加 为什么 引用 | 更新日期: 2023-09-27 18:10:32

我正在将解决方案连接到基于WCF SOAP的web服务。URL的格式为:

http://upload.pete.vls.com/api/hmlapi.svc

然而,当我添加引用时,配置出现以下内容:

<client>
    <endpoint address="http://upload.pete.vls.com/api/HmlApi.svc/soap"
                    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IHmlApi"
                    contract="ServiceReference1.IHmlApi" name="BasicHttpBinding_IHmlApi" />
</client>

我很困惑,为什么当我添加参考/soap/在结束它不工作。但是当我不添加它时,"添加引用"功能会找到该服务,并以/soap/添加它。

为什么我必须添加对URL/service的引用?但是它会为URL/service.svc/soap创建一个绑定

您输入的URL(不包括soap部分)包含有关所提供的服务传输类型的信息。VS从中选择soap,并在配置中保存适当的端点地址。

但是,当提示您时,该结束URL 是正确的。因为它需要一个包含服务信息的URL——而不是最终使用的实际端点。

因为您在服务器上的端点可能是这样配置的

<services>
  <service name="YourService">
    <endpoint name="mySOAPEndpoint" address="soap" binding="someHttpBinding" contract="IYourService" />
  </service>
</services>

注意地址是"soap",它是服务URI之后的相对路径(即.svc之后)。如果你写address="那么你的。svc URI和你的端点地址是一样的。