道歉,如果已经在本网站上回答了这个问题,我搜索了但没有找到这个确切的场景。
我正在将log4net添加到WCF服务。我在Application_Error事件中添加了一个处理程序,它在每个请求中都捕获了一个找不到文件的错误。
我在网站上看过这个,通常错误可以追溯到根目录中没有“favicon”文件,或者css样式表中引用的丢失图像。
但是,这是一个WCF服务,没有CSS样式表,并且向根添加favicon并没有解决问题。
有没有其他人有一个很好的方法来解决这个问题?
一些线索:
我在错误消息中添加了url和文件路径,这就是它们:
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);
}
非常感谢任何帮助。
答案 0 :(得分:6)
原因很可能是未指定该服务。当一个Web服务器(也是本地开发者)收到一个文件夹请求时,他们会在该文件夹中查找默认页面(通常称为:index.htm,index.html,default.asp,default.aspx等)和提出(除非您使用基于REST的服务描述)。当您从VS运行时,调试将直接转到实际服务。
在这种情况下,因为您已经构建了服务,您需要指定确切服务的位置,即http://localhost:3994/service.svc
。
另外:如果您启动调试会话,然后将URL更改为http://localhost:3994/
,您应该可以检查调试器的情况。