1

Silverlight 4 プロジェクトと WCF クラス ライブラリ プロジェクトを含むソリューションがあります。そして、Silverlight プロジェクトの WCF サービスにサービス参照を追加します (WCF は IIS で公開されていません)。Silverlight プロジェクトからサービスを呼び出そうとすると、次の例外が発生します。

URI へのリクエストの試行中にエラーが発生しましたhttp://localhost:8732/Design_Time_Addresses/CustomWcfService/MyService/。これは、適切なクロスドメイン ポリシーを設定せずにクロスドメイン方式でサービスにアクセスしようとしたか、SOAP サービスに適していないポリシーが原因である可能性があります。クロスドメイン ポリシー ファイルを公開し、SOAP 関連の HTTP ヘッダーを送信できるようにするために、サービスの所有者に連絡する必要がある場合があります。このエラーは、InternalsVisibleToAttribute 属性を使用せずに Web サービス プロキシで内部型を使用した場合にも発生する可能性があります。詳細については、内部例外を参照してください。

次の 2 つのファイルを WCF ライブラリ プロジェクトに追加して、この問題を解決しようとしています。

1) 次の xml を持つ clientaccesspolicy.xml

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

2) 次の xml を含む crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy> <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

次に、WCF プロジェクトをビルドし、Silverlight プロジェクトでサービス参照を更新しますが、同じ例外がまだ存在します。

この例外を処理するにはどうすればよいですか? サービスを公開する必要がありますか? そして、これはセルフホスティングと見なされますか??

4

1 に答える 1

0

clientaccesspolicy.xml ファイルを iis のルートに置きます。例では c:\inetpub\wwwroot に

于 2013-05-07T09:43:30.050 に答える