Извинения, если на этот сайт уже был дан ответ, я искал, но не нашел этого точного сценария.
Я добавляю log4net в службу WCF. Я добавил обработчик в событие Application_Error, и он перехватывает ошибку «файл не найден» при каждом запросе.
Я видел это на веб-сайтах, и обычно ошибка может быть связана с отсутствием файла favicon в корневом каталоге или отсутствующим изображением, на которое есть ссылка в таблице стилей CSS.
Однако это служба WCF, таблицы стилей CSS нет, и добавление значка root в корень не решило проблему.
У кого-нибудь еще есть хороший способ устранить это?
Некоторые подсказки:
- Я еще не развернул это на реальном сервере IIS, я запускаю его локально.
- Ошибка не возникает при запуске в DEBUG в Visual Studio, только при доступе к службе из веб-браузера (IE или Chrome)
Я добавил URL и путь к файлу к сообщению об ошибке, и вот что они:
URL: http://localhost:3994/
FilePath: /
Ошибка: System.Web.HttpException (0x80004005): файл не существует.
Редактировать: вышеуказанные значения - это то, что отображается в зарегистрированном исключении:
protected void Application_Error(object sender, EventArgs e)
{
var objErr = Server.GetLastError().GetBaseException();
if (objErr is System.Web.HttpException)
{
var filePath = Context.Request.FilePath;
var url = ((HttpApplication) sender).Context.Request.Url;
Log.Error("URL: " + url + "; FilePath: " + filePath, objErr);
} else
Log.Error("Application Error", objErr);
}
Любая помощь будет принята с благодарностью.