2011-10-23 9 views
0

私が開始する前に、私はsilverlight3と.Net 3.5を使っていると言わなければなりません。 私はそれにいくつかのメソッドを持つwcfクラスライブラリを持っています。私はそれをSilverlightクラスライブラリに追加しました(wcfクラスライブラリを追加するには、最初に私のwcfクラスライブラリプロジェクト全体をSilverlightクラスライブラリソリューションに追加してから私のSilverlightクラスライブラリにwcfクラスライブラリのサービスリファレンスを追加する)、Silverlightクラスライブラリの出力がusercontrolであると想像してください。私はクラスコントロールをSilverlightアプリケーション(私のメインプロジェクト)に追加しました。 「:// localhostを:8732/Design_Time_Addresses/GalleryShopWCFService/GalleryShopService/HTTP」アプリケーションがユーザーコントロールをインスタンス化したい場合でも、URIへの要求をしようとしたときにエラーが発生した例外wcfクラスライブラリのクロスドメインの例外

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

私はcleintaccesspolicy.xmlファイルを持っているはずですが、どこがわからないのですか。

答えて

0

この問題は、2つの方法で解決できます。

まず:あなたのお店のサービスは、Silverlightアプリケーションのためのアクセスポリシーを提供する方法を実装することができます。実際の実装では

public interface IGalleryShopService 
{ 
    [OperationContract, WebGet(UriTemplate = "/clientaccesspolicy.xml")] 
    Stream GetSilverlightClientAccessPolicy(); 

    /* other contracts declarations */ 
} 

を、あなたは、ストリームとして、実際のXMLを返す必要があります。 SilverlightのXMLの例はMSDNにあります。第二に

は:this blog postで説明したように、単純に、あなたのサービスの実装のルートディレクトリにclientaccesspolicy.xmlを置きます。

0

は、単にそれが動作するルートディレクトリにclientaccesspolicy.xmlすなわち

c:\inetpub\wwwroot\clientaccesspolicy.xml 

を置きます。

http://localhost/clientaccesspolicy.xmlの中のあなたのウェブサイトの検索clientaccesspolicy.xmlがそうでなければ、xmlファイルのパスを変更することができます。仮想ディレクトリを使ってrootに置きます。

関連する問題