2010-11-23 1 views
0

WebClientオブジェクトを使用してSilverlight Webアプリケーションでテキストファイルのコンテンツを取得するのは簡単なことです。Silverlight 4 WebClientの使用OpenReadCompleted throughsホストされているWebサーバーのセキュリティ例外。それは何ですか?

ローカルサーバー上のイントラネットセットアップで機能しますが、ホストされた "hostgator"サーバーに展開すると、WebClientはセキュリティ例外を取得します。数多くのWebブログからの提案に続いて、クロスドメインアクセスポリシーとcrossdomain.xmlを試しましたが、同じドメイン上には不思議ではありません。 http://myserver.com/myapplication:port/sourcefiles/file.csv //、ソースファイルが同じウェブサイト含む仮想ディレクトリでCSVファイル

void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 
      try 
      { 
       using (System.IO.StreamReader reader = new System.IO.StreamReader(e.Result)) 
       { 
        mainFileData = new List<string>(); 
        string line; 
             } 
      } 
      catch (Exception ex) 
      { 
       string errorMessage = ex.InnerException; 

}他 :

private void LoadCSVFile(string csvFile) 
    { 
     try 
     { 
      WebClient client = new WebClient(); 

      client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); 
      client.OpenReadAsync(new Uri(csvFile, UriKind.Absolute)); 
     } 
     catch (Exception ex) 
     { 
      string errorMessage = String.Format("Ex accessing csv: {0}\n{1}", csvFile, 

}}

//たcsvfileは絶対パスです{ "ここに例外の場所があります!!!!!!!そう、e.Errorはnullではありません" } }

例外のテキストを読み取りますSystem.SecurityExceptionを:System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponseでセキュリティエラー(たIAsyncResult asyncResult)など

は無い結果とgooogling 2日をお過ごしください。

助けてください。 V

答えて

1

チェックする物事のカップル:

(1)あなたが一覧表示URL(http://myserver.com/myapplication:port/sourcefiles/file.csv)の形式は奇妙に見えます。 http://myserver.com:port/myapplication/sourcefiles/file.csvではありませんか?それとも、それは単にタイプミスですか?

(2)アクセスしているポート番号は何ですか? Silverlight WebClientはポート80と443にのみアクセスします。

(3)直接URLを使用してファイルにアクセスできますか?場合によっては、Webサーバーに特定のファイルタイプについて通知してから、そのファイルタイプを提供できるようにする必要があります。

+0

Ken、ご回答ありがとうございます:(1)完全なurl = myworks.com/$ sitepreview/myworks.com:8091/sourcefiles/file1.csv。 - うん、イントラネット上の誤植(2)はポート8091のファイルにアクセスするだけです。ここ(3)は何かです。 「cvs」ファイルタイプが提供されるようサーバーに指示するにはどうすればいいですか? – val

+0

Ken、もう一度、あなたに私にヒントを与えて、問題を解決しました。スクリプトを受け入れるために仮想ディレクトリを設定するだけでした。これがセキュリティ例外の原因でした。乾杯 – val