Как устранение неполадок «System.web.httpexception (0x80004005): файла не существует»?

StackOverflow https://stackoverflow.com/questions/4819170

  •  26-10-2019
  •  | 
  •  

Вопрос

Приносим извинения, если на этом уже ответили на этом сайте, я искал, но не нашел этот точный сценарий.

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

Я видел это с веб -сайтами, и обычно ошибка можно проследить до того, как не имел «Favicon» файла в корневом каталоге, или до отсутствующего изображения, на которое ссылаются в таблице стилей CSS.

Тем не менее, это сервис WCF, таблица стилей CSS нет, и добавление изыскания в корень не решил проблему.

У кого -нибудь еще есть хороший способ устранения неполадок?

Некоторые подсказки:

  • Я еще не развернул это на настоящем сервере IIS, я запускаю его локально.
  • Ошибка не происходит, когда я работаю в отладке внутри Visual Studio, только когда я получаю доступ к сервису из веб -браузера (т.е. или хром)
  • Я добавил URL и путь к файлу в сообщение об ошибке, и это то, чем они есть:

    URL: http: // localhost: 3994/

    Путь к файлу: /

    Ошибка: 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);
}

Любая помощь будет очень оценена.

Это было полезно?

Решение

Причина в том, что услуга не была указана. Когда веб -сервер (локальный Dev One) получает запрос на папку, которую они смотрят в эту папку для страницы по умолчанию (обычно называемой: index.htm, index.html, default.asp, default.aspx и т. Д.) И Представьте это (если вы не используете описание службы на основе покоя). Когда вы забегаете от VS отладки, приведут вас прямо к фактическому сервису.

В этом случае, потому что вы создали услугу, вам необходимо указать местоположение точного обслуживания, т.е. http://localhost:3994/service.svc.

Также: если вы начнете сеанс отладки, а затем измените URL на http://localhost:3994/ Вы должны быть в состоянии проверить, что это так с отладчиком.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top