如何对“ system.web.httpexception(0x80004005)进行故障排除:文件不存在”?

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

  •  26-10-2019
  •  | 
  •  

抱歉,如果在此网站上已经回答了这一点,我搜索了,但没有找到这种确切的情况。

我正在将log4net添加到WCF服务中。我在application_error事件中添加了一个处理程序,并且它正在捕获每个请求中未找到错误的文件。

我已经在网站上看到了这一点,通常可以将错误追溯到根目录中没有“ favicon”文件,也可以将其错误地记录到CSS样式表中引用的丢失映像中。

但是,这是WCF服务,没有CSS样式表,并且在根部添加Favicon并不能解决问题。

其他人是否有很好的方法来解决此问题?

一些线索:

  • 我还没有将其部署到真实的IIS服务器,而是在本地运行。
  • 当我在Visual Studio内进行调试时,只有当我从Web浏览器(即或Chrome)访问服务时,该错误不会发生
  • 我在错误消息中添加了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);
}

任何帮助将不胜感激。

有帮助吗?

解决方案

原因很可能尚未指定服务。当Web服务器(也是本地DEV ONE)收到文件夹请求时,他们会在该文件夹中查看默认页面(通常称为:index.htm,index.html,default.asp,default.aspx等)和提出(除非您使用基于REST的服务描述)。当您从VS跑步时,调试将使您直接进入实际服务。

在这种情况下,因为您已经建立了一项服务,因此需要指定确切服务的位置IE http://localhost:3994/service.svc.

另外:如果您开始调试会话,然后将URL更改为 http://localhost:3994/ 您应该能够与调试器进行检查。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top