2

Windows クライアント (Winforms アプリケーション) と Web クライアント (html/aspx ページ) から呼び出す必要があるカスタムのユーザー名とパスワードの WCF サービスがあります。web.config に 2 つのエンドポイント宣言がありますが、それを機能させるには、そのうちの 1 つをコメントする必要があります。そのため、コメントされていないエンドポイントに関連付けられているクライアント タイプのみがサービスにアクセスできます。それをコメント解除して、もう一方をコメントすると、他のクライアントがアクセスできます。両方を保持することはできないため、両方のタイプのクライアントでアクセスすることはできません。

<service behaviorConfiguration="Behavior1" name="BeST.Service.Service">
    <endpoint address="" binding="webHttpBinding" contract="BeST.Service.IService" behaviorConfiguration="EndpBehavior"></endpoint>
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="Binding1"
     contract="BeST.Service.IService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/" />
      </baseAddresses>
    </host>
  </service>

コードが示すように、このサービスを両方のクライアントで機能させたい場合は、両方のエンドポイント (2 つのエンドポイントの上) を使用する必要があります。または、それを実行する別の方法がある場合は、助けてください!

4

1 に答える 1

3

問題は、両方のエンドポイントに同じアドレスを指定していることです。エンドポイントの1つに別の相対アドレスを指定してみてください。そうすれば、機能するはずです。

<service behaviorConfiguration="Behavior1" name="BeST.Service.Service">
  <endpoint address="web" binding="webHttpBinding" contract="BeST.Service.IService" behaviorConfiguration="EndpBehavior"></endpoint>
  <endpoint address="" binding="wsHttpBinding" bindingConfiguration="Binding1"
    contract="BeST.Service.IService" />
  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  <host>
    <baseAddresses>
      <add baseAddress="http://localhost/" />
    </baseAddresses>
  </host>
</service>
于 2013-01-14T08:59:20.510 に答える