私のソリューションのService Referencesフォルダに.asmx
というURLを参照して外部Webサービスを使用しているWPF/WCFアプリケーションがあります。サーバー側でWCFサービスでエラーが発生しました "エンドポイントがリッスンしていませんでした..."
、私は以下のようにweb.config
のエントリを作成しました:
<binding name="ExtractService"
closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:01:00" sendTimeout="00:10:00"
allowCookies="false" bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="524288"
maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8"
transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192"
maxArrayLength="2147483647" maxBytesPerRead="4096"
maxNameTableCharCount="2147483647" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
<client>
<endpoint name="ExtractService"
address="https://example.com/DataExtractService.asmx"
binding="basicHttpBinding" bindingConfiguration="ExtractService"
contract="ExtractService" />
</client>
をまた、私は上記のweb.config
と同じクライアント側でapp.config
エントリを持っています。
開発環境ですべて実行するとうまく動作します。たぶん私のクライアントとWebサーバー(WCF)が同じマシン上にあるためです。
しかし、テストサーバーにアプリケーションをデプロイすると、以下のエラーが発生します。この場合、クライアントは私のマシン上にあり、サーバー(WCF)は他のマシン上にあります。
メッセージ:HandlingInstanceID:71a85aef-dbb0-4c28-9035-57f8b7526ee0 型 'System.ServiceModel.EndpointNotFoundException' の例外
が発生したと捉えました。メッセージを受け入れることができるhttps://example.com/DataExtractService.asmxにリッスンしているエンドポイントがありませんでした。これは、しばしば不正なアドレスまたはSOAPアクションによって引き起こされます。詳細については、InnerException(存在する場合)を参照してください。
これを解決するために、クライアント側のapp.exe.config
ファイルに同じ設定をコピーしようとしましたが、動作しません。
ここで、クライアントの設定がありません。私はまた、サーバーのbinフォルダにapp.configをコピーしましたが、助けにはなりませんでした。
ありがとうございます。私は一致する契約などでサーバータグを定義しましたが、それでも同じエラーが発生します。私はまた、開発環境でどのように動作するのだろうか? –
既定のエンドポイント(WCF 4.0+)では「サーバー側の設定にセクションがない場合は、接続するエンドポイントが公開されていません」というエラーが表示されますか? –
Tim
@Tim:あなたはおそらく正しいです.....私はそれらを忘れています。私は明らかに私のエンドポイントを明示的に定義するよりも、もっと混乱し、 "予期せず驚く"と感じています..... –