VSTS 2008 + C#+ WCF + .Net 3.5 + Silverlight 3.0を使用しています。私はHTMLページでSilverlightコントロールをホストし、VSTS 2008からデバッグします(F5キーを押し、VSTS 2008ビルトインASP.Net開発Webサーバーで実行します)。次に別のWCFサービス(IIS 7.0 + Vistaを実行している別のマシンでホストされています) 。 WCFサービスは非常にシンプルで、定数文字列をクライアントに返すだけです。 URI「https://LabTest/Test.svc」への要求をしようとしながら、WCFクロスドメインポリシーセキュリティエラー
は、SilverlightのWCFサービスを呼び出すときに、私は次のエラーメッセージが表示されました、
エラーが発生しました。これは、クロスドメインポリシーが適切に設定されていないクロスドメイン方式のサービスや、SOAPサービスには適さないポリシーにアクセスしようとしたためです。クロスドメインポリシーファイルを公開し、SOAP関連のHTTPヘッダーを送信できるようにするには、サービスの所有者に連絡する必要があります。このエラーは、InternalsVisibleToAttribute属性を使用せずにWebサービスプロキシの内部型を使用することによっても発生する可能性があります。詳細については内部の例外を参照してください。
ここにclientaccesspolicy.xmlファイルがあります。何か間違っていますか?
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*">
</domain>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"></resource>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
したがって、wcfサービスはWebサイトとして構築され、IISでホストされ、clientaccesspolicyは共有サイトのルートにありますか? – Johannes
はい。私が投稿した内容は、clientaccesspolicy.xmlの内容です。私はサーバー側で自己署名証明書を使用しています、それはいいですか? – George2
クロスドメインWCF httpsコールの自己署名証明書には制限があると聞きましたが、 – George2