WCF地址与我在web.config中指定的地址不匹配

时间:2009-09-24 00:35:21

标签: wcf

在我的web.config中,我指定了

<services>
      <service name="Querier.WCF.Querier"
       behaviorConfiguration="QuerierServiceBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://myserver:8000/SearcherService"/>
          </baseAddresses>
        </host>
        <endpoint address="net.tcp://myserver:9000/SearcherService"
                  binding="netTcpBinding"
                  bindingConfiguration="Binding1"
                  contract="Querier.WCF.IQuerier" />
      </service>
</services>

但是,该网站在http://myserver:8000/SearcherService

不可用

我出于某种原因必须去:

http://myserver/SearcherService/SearcherService.svc (请注意端口丢失)

当我去那里时,它告诉我运行

svcutil.exe http://myserver .mycompanyname.com /SearcherService/SearcherService.svc?wsdl

由于某种原因它添加了一个域名,当我尝试使用WCF风暴访问该服务时, 我输入http://mymachine/SearcherService/SearcherService.svc,它发现所有的函数名称都很好,但当我尝试运行一个时,我得到:

  

没有终点收听   的net.tcp:// MYSERVER:9000 / SearcherService   那可以接受这个消息。这是   通常由不正确的地址引起   或SOAP动作。请参阅InnerException,if   目前,了解更多详情。

关于我的服务网址为何与我在web.config中指定的内容不相符的任何想法?

注意:

我在IIS中的应用程序上设置了nettcp,并在9000上启用了绑定:*

1 个答案:

答案 0 :(得分:2)

当您在IIS中托管WCF服务时,IIS及其配置决定了您的服务的基本地址,您只能指定相对地址。 baseaddress仅适用于自托管服务。