У меня есть веб-сайт ASP.NET MVC, который работает совместно со службой Windows, которая обрабатывает загрузку файлов. Для удобства обслуживания сайта я бы хотел, чтобы файл журнала для службы Windows был доступен (только для меня) через веб-сайт, чтобы я мог нажать http://myserver/logs/myservice, чтобы просмотреть содержимое файла журнала. , Как я могу это сделать?
Можно предположить, что служба могла либо записать свой файл журнала в папку «Журналы» на верхнем уровне сайта, либо оставить его там, где он есть, и настроить виртуальный каталог, чтобы он указывал на него. Что из этого лучше - или есть другой, лучший способ?
Где бы ни хранился файл, я вижу, что будет другая проблема. Я опробовал первый вариант (папка «Журналы» на моем веб-сайте), но при попытке получить доступ к файлу через HTTP я получаю сообщение об ошибке:
Процесс не может получить доступ к файлу 'foo', поскольку он используется другим процессом.
Теперь я знаю по опыту, что моя служба держит файл заблокированным для записи во время работы, но я все еще могу открыть файл в Блокноте для просмотра текущего содержимого. (Я удивлен, что IIS настаивает на доступе для записи, если это то, что происходит).
Как я могу обойти это? Неужели мне действительно нужно написать обработчик, чтобы прочитать файл и передать его браузеру самостоятельно? Или я могу это исправить с помощью конфигурации или чего-то такого?
PS. Я использую IIS7, если это помогает.