Web服务命名空间

时间:2012-10-12 17:02:51

标签: .net vb.net web-services soap

我的webservice名称空间出现问题。它在我的计算机上工作正常,但是当我将它上传到团队基础服务器时,它对任何其他人都不起作用。

我在webservice中的代码(位于自己应用程序中的'Sentry.SAID'命名空间中:

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports Sentry.SAID.Core
Imports Sentry.SAID.Web

<System.Web.Services.WebService(Namespace:="http://localhost")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Powerbeatws
    Inherits System.Web.Services.WebService

'Sentry.SAID.Web'应用程序中的'Sentry.SAID'名称空间

中的XML文件
        <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="PowerbeatwsSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
         receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
         bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
         maxBufferSize="11000000" maxBufferPoolSize="524288"
         maxReceivedMessageSize="11000000"
         messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
         useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
           maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
             realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:62862/Powerbeatws.asmx" binding="basicHttpBinding"
       bindingConfiguration="PowerbeatwsSoap" contract="PowerbeatSR.PowerbeatwsSoap"
       name="PowerbeatwsSoap" />
    </client>
  </system.serviceModel>

如果我将端点地址更改为localhost / Powerbeatws.asmx,则会引发错误。任何想法是如何使用localhost在单独的计算机上工作?

目前,要使其在任何其他计算机上运行,​​必须添加新的服务引用。

1 个答案:

答案 0 :(得分:0)

使用Web服务时,我们必须记住,涉及2个实体,托管的服务和使用它的客户端。

如果两者都要在其绑定中使用localhost,则它们必须采用相同的端口号,或者从TFS下载代码的人必须将端点绑定从localhost:62862更改为服务在其计算机上运行的任何端口。 / p>

您也可以通过Web服务上的配置或通过代码来创建特定的托管地址,其中每个人都使用众所周知的端口,例如: 51000.将端点绑定更改为localhost:51000,并确保服务主机正在侦听端口51000,它应该可以正常工作。

我认为团队的问题是他们的本地主机上没有使用相同的端口号,因此绑定不起作用。它适用于您的计算机,因为您在端口62862上托管服务。

但可能是错的。不确定他们看到的异常是什么,但这在共享Web服务代码时并不常见。