我正在向现有网页添加ADO.Net数据服务查找功能.从visual studio运行时,一切都很好,但当我将它推出到IIS时,我收到以下错误:
请求错误
服务器在处理请求时遇到错误.请参阅服务器日志以获取更多详
即使在尝试显示默认页面时,我也会得到这个,即:
HTTP://server/FFLookup.svc
我在服务器上安装了3.5 SP1.
我错过了什么,它指的是"服务器日志"?我找不到任何进一步的错误消息.
事件查看器日志(系统或应用程序)中没有任何内容,除了GET之外的IIS日志中没有任何内容:
2008-09-10 15:20:19 10.7.131.71 GET /FFLookup.svc - 8082 - 10.7.131.86 Mozilla/5.0 +(Windows; + U; + Windows + NT + 5.1; + en-US)+ AppleWebKit/525.13 +(KHTML,+ like + Gecko)+ Chrome/0.2.149.29 + Safari/525.13 401 2 2148074254
没有返回堆栈跟踪.我得到的唯一回应是如上所述的"请求错误".
谢谢
帕特里克
为了详细显示数据服务产生的错误,您可以将以下标记放在数据服务定义之上:
[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]
然后,这将在浏览器窗口中显示错误以及堆栈跟踪.
除此之外,dataservices还会抛出HandleException方法的所有异常,因此如果在dataservice类上实现此方法,则可以在其上设置断点并查看异常:
protected override void HandleException(HandleExceptionArgs e) { try { e.UseVerboseErrors = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } }
好吧,我发现上面的错误中提到的"服务器日志".
您需要通过添加以下标记来打开web.config文件中的跟踪:
这将在您的网站目录中创建一个名为app_tracelog.svclog的文件.
然后,使用SvcTraceViewer.exe实用程序查看此文件.观众可以很好地突出显示错误(以及有关通信的大量其他信息).
注意:使用上述参数创建的日志文件增长非常快.只有在调试期间打开它!
在这种特殊情况下,问题最终成为我们的Oracle数据提供商OraDirect.Net的错误版本.我们使用的版本不支持3.5 SP1.