2016-05-05 2 views
1

Я столкнулся с проблемой IIS express, резко прекратившей работу без трассировки стека при отладке в локальной сети.Как открыть файл 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()); 
    } 
} 

Теперь я хочу, чтобы открыть эту ExceptionHandlerError.html автоматически каждый раз, когда его модифицирована, когда IIS Express останавливается.

Мне нужен файл bat или скрипт для автоматизации этого. Как я могу это сделать?

Примечание. Я подключен к сети, которая не разрешает доступ администратора и не имеет доступа к средству просмотра событий.

+0

Консоль 'cmd' на самом деле не управляется событиями. Было бы лучше, если бы ваш обработчик исключений запустил html-файл после написания трассировки стека, я думаю. Мониторинг файла для изменения размера с помощью пакетного скрипта - это не самое изящное решение, о котором я не думаю. – rojo

+0

Хммм. Как мне это сделать? – Josh

+0

Не уверен. Я не знал, что IIS Express позволит вам написать свой собственный обработчик исключений, прежде чем задавать свой вопрос. В самом деле, я не знал, что IIS Express был разбит, прежде чем вы задали свой вопрос. ':)' Это код C#, не так ли? Я предполагаю, что под блоками кода 'using' вы должны создать объект' new Process() ', заполнить его свойства' StartInfo', а затем вызвать его метод 'Start()'. Но все это дикая догадка. Я много не писал на 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

Спасибо. Но будет ли этот файл bat постоянно работать? без его размещения внутри планировщика? – 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); 
Смежные вопросы