2

私は現在、Silverlight で小さなアプリケーションを開発しています。最近試してみるために、アプリケーションのブラウザー外展開を有効にしました。ただし、設定を無効にした後、アプリケーションを実行すると、ロードが完了するとすぐに例外がスローされるようになりました。

未処理の例外 ('silverlight アプリケーション コードの未処理エラー: 4004 カテゴリ: ManagedRuntimeError メッセージ: System.Reflection.TargetInvocationException: 操作中に例外が発生したため、結果が無効になります。

ただし、ブラウザで TestPage.html を開くと、アプリケーションはそのまま動作します。

何か案は?ありがとう

4

2 に答える 2

0

問題が見つかりました。ブラウザー外でアクティブ化してから戻るのにこれが必要な理由はわかりませんが、ClientAccessPolicy.xml ファイルを .web プロジェクトに追加します。

<?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>

問題を修正しました。

于 2011-07-19T14:38:17.237 に答える
0

たとえば、App.Xaml.cs (App.Xaml のコード ビハインド) の Application_UnhandledException メソッドに次の行を入力してみてください "MessageBox.Show(e.ExceptionObject.Message);" . これにより、デバッガーがまだブラウザーに接続されていない場合に何が問題になるかがわかります。Visual Studio では、[デバッグ] メニュー -> [プロセスにアタッチ] で手動でデバッガをブラウザにアタッチし、たとえば「Silverlight, x86」タイプのプロセスを選択できます。

    private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
    {
        MessageBox.Show(e.ExceptionObject.Message);
        // If the app is running outside of the debugger then report the exception using
        // the browser's exception mechanism. On IE this will display it a yellow alert 
        // icon in the status bar and Firefox will display a script error.
        if (!System.Diagnostics.Debugger.IsAttached)
        {

            // NOTE: This will allow the application to continue running after an exception has been thrown
            // but not handled. 
            // For production applications this error handling should be replaced with something that will 
            // report the error to the website and stop the application.
            e.Handled = true;
            Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
        }
    }
于 2011-07-12T17:06:52.313 に答える