2009-08-24 14 views
0

私は、バックエンドと通信するためにWCFを使用してSilverlight 3アプリケーションを構築する方法を学んでいます。 Server2008またはVistaのIIS7に展開する予定です。クライアントバイナリとWebサービスバイナリは、すべて同じIIS Webディレクトリにあります。私がサービスフロントページ(http://localhost/MyService.svc)を打つと、それはちょうど良い結果を返します。私はアプリ(http://localhost/index.html)を打つ私は私のSilverlightアプリケーションを取得します。静的なマテリアルはうまく描画されますが、2つのフィールドはCrossDomainErrorを返します。私が理解していることから、これは他のドメインでホストされているページからサービスを受けると発生します。私は無意識のうちにそうしているとは思わない。同じドメインのCrossDomainError

例外メッセージがある:

[CrossDomainError] 引数:http://localhost:2721/Service1.svc デバッグリソース文字列は使用できません。多くの場合、キーと引数は問題を診断するのに十分な情報を提供します。

ポート2721をインバウンドとアウトバウンドの両方で有効にしていませんでした。

どのような考えですか?

答えて

2

2つの文書が同じ起源を持つとみなされるためには、プロトコル(http/https)、ドメインおよびポートがすべて同じでなければなりません。

http://localhostを開き、http://localhost:2721へのリクエストをしようとすると、そのエラーが発生します。

+0

ありがとう!ここで質問をフォローアップ:http://stackoverflow.com/questions/1325118/how-do-you-create-obtain-a-cross-domain-policy-for-an-iis7-wcf-service –

1

ウェブサイトのルートにcrossdomain.xmlおよび/またはclientaccesspolicy.xmlが必要です(Flash互換性のためにcrossdoomain.xmlが必要です。どちらもsilverlightで動作します)。このxmlは次のようなものです:

<?xml version="1.0" encoding="utf-8" ?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="*"> 
     <domain uri="*"/> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true" /> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 
+0

よろしいですか?これを行ったが、私はまだクロスドメインエラーを取得します。他に何か考えなければならないことはありますか? –

関連する問題