以前、リモート マシンから WCF サービスにアクセスしようとしたときに SecurityNegotiationException を解決するために質問しました。その例外は、ValtasarIII による回答のおかげで解決されました。
今、私は別の問題を抱えています。サーバーでサービスをホストしており、クライアント アプリケーションを使用してサービスに接続したいと考えています。しかし、クライアント アプリケーションからサービスにサブスクライブしようとすると、何も起こらず、最後に例外が発生します。
The open operation did not complete within the allotted timeout of 00:00:59.9939996. The time allotted to this operation may have been a portion of a longer timeout.
(必要に応じてスタック トレースを共有できます)
サービスが実行されているかどうかをテストしようとすると、クライアント マシンからブラウザ経由で正常にアクセスできます。
これが私の構成です:
サービス - web.config
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="wsHttpDual">
<security mode="None">
<message clientCredentialType="None" algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<protocolMapping>
<add scheme="http" binding="wsDualHttpBinding" bindingConfiguration="wsHttpDual"/>
</protocolMapping>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
クライアント - app.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_ISampleContract" clientBaseAddress="http://95.138.188.232:8000/myClient/">
<!--<security mode="Message">
<message clientCredentialType="Windows" algorithmSuite="Default" />
</security>-->
<security mode="None">
<message clientCredentialType="None" algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://95.138.188.232/autofxtools/service.svc"
binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_ISampleContract"
contract="ISampleContract" name="WSDualHttpBinding_ISampleContract">
<identity>
<servicePrincipalName value="host/95.138.188.232" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
解決策を探しましたが、何もうまくいきませんでした。サービス構成は、セキュリティ要件を示唆していないようです。ただし、同じ構成のクライアントは、実際にはサービスと同じマシンから動作しますが、リモート マシンからは動作しません。これは、(wsDualHttpBinding のデフォルトとして) Windows 認証がまだ存在することを意味しますか? もしそうなら、どこが間違っているのですか?
ポジティブなフィードバックが得られることを願っています。
よろしく。