0

シンプルな 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>

この WCF サービスをスタンドアロンの exe でホストしました。私のサービスは以下のアドレスでアクセスできると期待しています。

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

ただし、サービスは次の場所でアクセスできますhttp://localhost:8080/OperationService/

http://localhost:8080/OperationService/MathsOperation/リンクを使用してサービスにアクセスしたい。誰でも私を助けることができますか?

4

1 に答える 1

2

あなたのサービスは では利用できないと思いますhttp://localhost:8080/OperationService。そこに表示されるのは、WCF によって作成された、使用可能なmexエンドポイントまたは WSDL へのパスを説明する HTML ページだけです。これらの mex エンドポイントは、A = アドレス => である WCF サービスの ABC を記述しますhttp://localhost:8080/OperationService/MathsOperation/。潜在的なクライアントは、mex エンドポイントにクエリを実行することで、サービスの URL を認識します。

デフォルトでは、この HTML ページはベース アドレスに表示されます。ただし、動作を使用して、このページを無効にしたり、別の URL に表示されるように設定したりできます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残念ながら、サービス エンドポイントと同じアドレスに設定することはできないと思います。

于 2013-06-02T18:40:01.803 に答える