2016-05-05 3 views
1

ローカルでデバッグ中にスタックトレースなしでIISが突然停止するという問題に直面しています。htmlファイルが変更されたときにいつ開くのですか?

enter image description here

私は、htmlファイルにスタックトレースを書き込むことで、このための回避策を発見しました。

string file = @"C:\Users\INLASKD\Desktop\ExceptionHandlerError.html"; 
using (FileStream fs = new FileStream(file, FileMode.Create)) 
{ 
    using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) 
    { 
     w.WriteLine(sb.ToString()); 
    } 
} 

は今、私はIIS Expressが停止したときにその変更に自動的に毎回このExceptionHandlerError.htmlを開きたいです。

これを自動化するバットファイルまたはスクリプトが必要です。これについてどうすればいいですか?

注:管理者アクセスを許可せず、イベントビューアにアクセスできないネットワークに接続しています。

+0

'cmd'コンソールは実際にはイベント駆動型ではありません。私は思うスタックトレースを書いた後、例外ハンドラにhtmlファイルを起動させるほうが良いでしょう。バッチスクリプトを使用してサイズ変更のファイルを監視することは、私が考えていない最も優雅な解決策ではありません。 – rojo

+0

Hmmm。それ、どうやったら出来るの? – Josh

+0

わかりません。私はIIS Expressがあなたの質問をする前にあなた自身の例外ハンドラを書くことを知らせていませんでした。確かに、あなたはあなたの質問をする前に、IIS Expressがクラッシュしているのを知らなかった。 ':)'それはC#コードですね。私はあなたが ''新しいProcess() 'オブジェクトを作成し、その' StartInfo'プロパティを設定し、 'Start()'メソッドを呼び出す 'using'コードブロックの下にあると思います。しかし、それはすべて野生の推測です。私はC#で多くのことを書いていません。 – rojo

答えて

0

あなたは、この利用可能にすべきいくつかの研究の後

@echo off 
set "file=C:\Users\INLASKD\Desktop\ExceptionHandlerError.html" 
:loop 
attrib "%file%" | findstr /B /L A 1>nul 
if %errorlevel% equ 0 (
::open the file here 
start "" "%file%" 
attrib -A "%file%" 
) 
timeout /t 2 /nobreak >nul 
goto loop 
+0

しかし、このバットファイルは常に稼働し続けますか?それはスケジューラーの中に置かれていませんか? – Josh

+0

はい、アーカイブ属性を編集するのを忘れてしまったので、修正しました。 –

1

は、私は以下の通りである右

System.Diagnostics.Process.Start(file); 

最終的なコードをファイルに書き込んだ後、ブラウザを開くことができました:

string file = @"C:\Users\iraacn-9ajm\Desktop\ExceptionHandlerError.html"; 
    using (FileStream fs = new FileStream(file, FileMode.Create)) 
    { 
    using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) 
      { 
      w.WriteLine(sb.ToString()); 
      } 
    } 

    System.Diagnostics.Process.Start(file); 
関連する問題