配置WCF服务端点时基址的角色

时间:2013-06-02 11:21:21

标签: wcf endpoint

我创建了简单的WCF服务,并将其端点配置为如下所示。

<services>
  <service name="AsynchWCFService.MathOperation">
    <endpoint address="MathsOperation" binding="wsHttpBinding" contract="AsynchWCFService.IMathOperation">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>            
        <add baseAddress="http://localhost:8080/OperationService/" />
      </baseAddresses>
    </host>
  </service>
</services>

我已经在一个独立的exe中托管了这个WCF服务。我希望我的服务可以在以下地址访问。

http://localhost:8080/OperationService/MathsOperation/

但可以http://localhost:8080/OperationService/

访问服务

我想使用http://localhost:8080/OperationService/MathsOperation/链接访问服务。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

我认为您的服务不在http://localhost:8080/OperationService。你看到的只有一个由WCF创建的HTML页面,它描述了可用的mex端点或WSDL的路径。 这些mex端点描述了您的WCF服务的ABC,其中A = address =&gt; http://localhost:8080/OperationService/MathsOperation/。潜在客户通过查询mex端点了解您的服务URL。

默认情况下,此HTML页面将显示在您的基本地址。但是,您可以使用serviceDebug行为禁用此页面或将其设置为显示在某个不同的网址上。

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceDebug httpHelpPageUrl="http://localhost:8080/OperationService/myhelppage"
                               /> <!-- use httpHelpPageEnabled="false" to disable the page -->
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

不幸的是,我认为您不能将httpHelpPageUrl设置为与服务端点相同的地址。