2009-07-29 5 views
0

非常に基本的なフォームPage.xamlコードの背後にあるXMLのWebClientリクエストがあります。ような何か:WebClientリクエストは、ホスティングソリューションによって異なるのはなぜですか?

public Page() 
    { 
     InitializeComponent(); 

     Uri uri = new Uri("Dummy.xml", UriKind.Relative); 

     WebClient webClient = new WebClient(); 
     webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted); 
     webClient.DownloadStringAsync(uri); 
    } 

    void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 
      //Do something 
     } 
    } 

asp.netホストされているページを介して実行するには、私のセットアップは私のSilverlightのプロジェクトであれば、それが正常に動作ClientBinフォルダ(XAPに対して)でDummy.xmlを置きます。

自動的に生成されたテストページオプションを使用してプロジェクトをセットアップし、xmlをxapに関連付けると、要求は機能しません(完了したイベントは発生します)。

私の質問はなぜですか?動的にダウンロードするSilverlightプロジェクトはすべてサーバー上にある必要がありますか?

乾杯 J

答えて

1

まず、自動生成テストページの使用を避けてください。これは、xapがファイルとしてアクセスされているときのデフォルトモデルによるSilverlightセキュリティの仕組みを理解する必要があります。

あなたの質問にお答えするには、不正なドメイン間アクセスを防ぐために設計されたセキュリティに遭遇しています。

+0

lol ...彼らが投げてくれた、きれいでクリアなエラーメッセージ:)。ご協力いただきありがとうございます。私は彼らがデスクトップのSilverlightアプリケーションのためにこれをどう扱っているのだろうか。 –

+0

OOBアプリはすべての目的と目的のためにブラウザサンドボックスにあります。したがって、デスクトップがWebサービスを呼び出そうとすると、WebサービスにはSilverlightアプリがインストールされたWebサイトのクロスドメインポリシーが必要になります。 –

0

はい、それはに接続するためのWebサーバがありません!自動生成されたテストページでは、Visual StudioのWebサーバーを呼び出さずに直接XAPを開きます。これを行うには、別のオプションを使用してSilverlightプロジェクトでWebサイトを作成する必要があります。また、XMLファイルをXAPにリソースとして埋め込み、リソースとしてアクセスすることもできます。

+0

これは「なぜ」という質問に答えていますか? WebClientにはWebサーバーがあるという依存関係はありますか? –

関連する問題