如何对“ system.web.httpexception(0x80004005)进行故障排除:文件不存在”?
-
26-10-2019 - |
题
抱歉,如果在此网站上已经回答了这一点,我搜索了,但没有找到这种确切的情况。
我正在将log4net添加到WCF服务中。我在application_error事件中添加了一个处理程序,并且它正在捕获每个请求中未找到错误的文件。
我已经在网站上看到了这一点,通常可以将错误追溯到根目录中没有“ favicon”文件,也可以将其错误地记录到CSS样式表中引用的丢失映像中。
但是,这是WCF服务,没有CSS样式表,并且在根部添加Favicon并不能解决问题。
其他人是否有很好的方法来解决此问题?
一些线索:
- 我还没有将其部署到真实的IIS服务器,而是在本地运行。
- 当我在Visual Studio内进行调试时,只有当我从Web浏览器(即或Chrome)访问服务时,该错误不会发生
我在错误消息中添加了URL和文件路径,这就是它们的本质:
文件路径: /
错误: 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/
您应该能够与调试器进行检查。
不隶属于 StackOverflow