0

WCFディスカバリーを使用してサービスを作成しました。(VS2010デバッグを使用して)特定のポートに展開するとすべて正常に機能しますが、IISに展開しようとすると、サービスは検出されますが、どのメソッドも実行できません。

これはコードです:

 DiscoveryClient discoverclient = new DiscoveryClient(new UdpDiscoveryEndpoint());
 FindResponse response = discoverclient.Find(new FindCriteria(typeof(IService)));
 EndpointAddress address = response.Endpoints[0].Address;
 ServiceClient client = new ServiceClient(new BasicHttpBinding(), address);
 Console.WriteLine(client.getMsg()); //some test function
 Console.ReadKey();

メソッドを実行client.getMsg()しようとすると、次のエラーが発生します。

EndpointNotFoundException:メッセージを受け入れることができるhttp://computerName.domain/services/Service.svc
で リッスンしているエンドポイントがありませんでし た。これは多くの場合、誤ったアドレスまたはSOAPアクションが原因で発生します。詳細については、InnerException(存在する場合)を参照してください。

しかし、私はアドレスを取得しました。つまり、それが見つかりました。そして、(iisではなく)debug deployerを使用するhttp://localhost:port/services/Service.svcと、それが見つかり、完全に正常に実行されます。どうすれば問題なくIISにデプロイできますか?

OS:win764ビット

設定ファイル:

<services>
  <service behaviorConfiguration="RemoteDeploy.Service1Behavior"
    name="RemoteDeploy.Service">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
      contract="RemoteDeploy.IService">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint name="udpDiscoveryEpt" kind="udpDiscoveryEndpoint" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>

</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="RemoteDeploy.Service1Behavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
      <serviceDiscovery>

        </serviceDiscovery>
    </behavior>
  </serviceBehaviors>
</behaviors>

4

1 に答える 1