2

次のような ClientAccessPolicy.xml を作成しました。

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

C:\Inetpub\wwwroot\wss\VirtualDirectories\intranet-80 に置き、iisreset を実行します。それでも、Silverlight を介して Web サービスにアクセスすると、正しいクロスドメイン ポリシーが適用されていないことを示す CommunicationException が発生します。Web サービスにアクセスできるようにするには、さらに何をする必要がありますか? 別のホストからアクセスできず、生成されたファイル E:\Development\MySLProject\MySLProject\bin\Debug\Default.html からアクセスできませんか?

乾杯

ニック

4

6 に答える 6

5

この問題のトラブルシューティング方法を説明する方が、ファイルをどこに配置する必要があるかを正確に説明するよりも簡単です。

  • ステップ 1: Fiddlerをインストールして起動する
  • ステップ 2: Silverlight クライアントを開く
  • ステップ 3: クライアントが clientAccessPolicy.xml を要求している場所を Fiddler で監視します (画像のダウンロードなど、単純な HTTP GET 要求です)。
  • ステップ 4: clientAccessPolicy ファイルを正しい場所に配置します (ブラウザーで直接ダウンロードしてテストします)。

10 分もかからずに問題を解決できるはずです (既に行ったことがあります :-) )

于 2010-11-18T16:29:57.123 に答える
1

Silverlight の場合: ServiceReferences.ClientConfig ファイルで相対パスを使用します。

<client>
<endpoint address="../Service1.svc"

幸運を

于 2010-11-08T12:05:39.000 に答える
1

問題を解決するのに 4 時間かかりました。最初は、「clientaccesspolicy.xml」とクロスドメインを Web サービス ルートに配置していました。これらのファイルをサーバー ルート C:\Inetpub\wwwroot に配置すると、アプリケーションが動作し始めました。

于 2012-06-06T05:09:07.960 に答える
0

最善の解決策は、 >> サイトのルート物理パスを見つける >> ファイル「ClientAccessPolicy.xml」をそこにコピー >> アクセスしてみます。

于 2010-11-18T13:47:47.333 に答える