0

Web サイトを通じて公開しようとしている単純な WCF Web サービスを作成しました。

Web サイト (web.config にサービス参照とバインディングがある) をサーバーにアップロードし、https://domain/ServiceRoute?wsdlを使用して wsdl を参照できます。

WSDL が の間違ったパスを示していますschemaLocation

次に、WCF テスト クライアントを使用してサービスをテストします。WCF テスト クライアントで次のエラーが表示されます。

エラー: https://domain/ServiceRoute?wsdlからメタデータを取得できません。これがアクセス権のある Windows (R) Communication Foundation サービスである場合は、指定されたアドレスでのメタデータ公開が有効になっていることを確認してください。メタデータの公開を有効にする方法については、http: //go.microsoft.com/fwlink/ ?LinkId=65455.WS-Metadata Exchange Error URI: https://domain/ServiceRoute?wsdl Metadata contains a referenceにある MSDN ドキュメントを参照してください。解決できない: 'https://domain/ServiceRoute?wsdl'. Sendera:ActionNotSupportedアクション 'http://schemas.xmlsoap.org/ws/2004/09/transfer/Get' を含むメッセージは、EndpointDispatcher での ContractFilter の不一致により、受信側で処理できません。これは、コントラクトの不一致 (送信者と受信者の間のアクションの不一致) または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインド (メッセージ、トランスポート、なしなどのセキュリティ要件を含む) を持っていることを確認します。HTTP GET エラー URI: https://domain/ServiceRoute?wsdl ドキュメントは理解されましたが、処理できませんでした。- WSDL ドキュメントに、解決できなかったリンクが含まれています。- 「https://incorrectSchemaLocation/ServiceRoute?xsd=xsd0」のダウンロード中にエラーが発生しました。- リモート名を解決できませんでした: 'IncorrectSchemaLocation'

これについてどうすればよいかわかりません。変更が必要なサーバー設定はありますか? schemaLocationまたは、明示的にof を使用するようにバインディングを更新できますhttps://domain/ServiceRouteか?

また、wsdl を参照しても、ssl 証明書エラーが発生しないことに注意してください。それが役立つかどうかはわかりません。

4

1 に答える 1

0

コマンドラインユーティリティを使用してWebサーバーの構成を変更することで、このエラーを回避できました。

cscript.exe adsutil.vbs set /w3svc/<site identifier>/SecureBindings ":443:<host header>"

ここ<site identifier>で、はIISサイト識別子であり<host header>、は外部からサービスにアクセスするために使用されるURLです(例:subdomain.domain.com)。

于 2012-04-20T18:53:55.567 に答える