ジャストインタイム デバッガー ウィンドウが表示されることがよくありますが、ほとんどの場合、メッセージは表示されませんが、例外全体が表示されないことがあります。
デバッガーを実行しようとすると、別のデバッガーが既にアタッチされているというエラーが常に発生し、どこにも行きません。ウィンドウはサイズ変更できず、テキストはコピーできません。
私は VS 2010 + C# + Silverlight で開発していますが、VS 経由で実行すると発生します。
洞察はありますか?
ジャストインタイム デバッガー ウィンドウが表示されることがよくありますが、ほとんどの場合、メッセージは表示されませんが、例外全体が表示されないことがあります。
デバッガーを実行しようとすると、別のデバッガーが既にアタッチされているというエラーが常に発生し、どこにも行きません。ウィンドウはサイズ変更できず、テキストはコピーできません。
私は VS 2010 + C# + Silverlight で開発していますが、VS 経由で実行すると発生します。
洞察はありますか?
既にデバッグ モードになっており、ブラウザのプロセスがコードにアタッチされているため、「別のデバッガが既にアタッチされています」というメッセージが表示されます。
まず、App.xaml でグローバル例外を処理します。
次に、ブラウザで開発者インスペクタを開きます。(ほとんどのブラウザーでは F12) とウォッチ コンソール。
System.IO の使用; // System.Windows を使用した FileNotFoundException; // アプリケーション、StartupEventArgs、ApplicationUnhandledExceptionEventArgs
namespace SilverlightApplication
{
public partial class App : Application
{
public App()
{
this.Startup += this.Application_Startup;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
}
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new Page();
}
private void Application_UnhandledException(object sender,
ApplicationUnhandledExceptionEventArgs e)
{
if (e.ExceptionObject is FileNotFoundException)
{
// Inform the user
// Recover from the error
e.Handled = true;
return;
}
// Exception is unrecoverable so stop the application and allow the
// Silverlight plug-in control to detect and process the exception.
}
}
}
次に、ブラウザで開発者インスペクタを開きます。(ほとんどのブラウザーでは F12) とウォッチ コンソール。メッセージは、xap がホストした index.aspx から送信されます。それに対するsilverlighterror js関数があります。
function onSilverlightError(sender, args) {
var appSource = "";
if (sender != null && sender != 0) {
appSource = sender.getHost().Source;
}
var errorType = args.ErrorType;
var iErrorCode = args.ErrorCode;
if (errorType == "ImageError" || errorType == "MediaError") {
return;
}
var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ;
errMsg += "Code: "+ iErrorCode + " \n";
errMsg += "Category: " + errorType + " \n";
errMsg += "Message: " + args.ErrorMessage + " \n";
if (errorType == "ParserError") {
errMsg += "File: " + args.xamlFile + " \n";
errMsg += "Line: " + args.lineNumber + " \n";
errMsg += "Position: " + args.charPosition + " \n";
}
else if (errorType == "RuntimeError") {
if (args.lineNumber != 0) {
errMsg += "Line: " + args.lineNumber + " \n";
errMsg += "Position: " + args.charPosition + " \n";
}
errMsg += "MethodName: " + args.methodName + " \n";
}
throw new Error(errMsg);
}
最後に、Web プロジェクトの設定で (存在する場合) を必ず確認してください。Web セクションには、デバッグ用の Silverlight チェックボックスがあります。添付ファイルをデバッグするためにチェックする必要があります。
もう 1 つの手がかり: VS Ctrl + Alt + E で CLR exceptions を選択すると、起動時にエラーの詳細が表示されます。ただし、エラーが正確に発生する場所で実行してください。エラーではない場合もありますが、デバッガーによってキャッチされます。
希望が役立ちます!