如何调试WCF数据服务?
我有一个WCF数据服务托管在Asp.Net网站。这里是我的web.config服务部分:如何调试WCF数据服务?
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service name="DataServiceHost"
behaviorConfiguration="DataServiceBehavior">
<endpoint name="DataServiceHost"
address=""
binding="webHttpBinding"
contract="System.Data.Services.IRequestHandler" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DataServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
而且我在InitializeService
方法config.UseVerboseErrors = true;
。
我打了F5
我进入调试模式,并浏览到我的服务,得到一个错误,虽然它没有在VS中打破。我很茫然。
错误btw:服务器在处理请求时遇到错误。查看服务器日志获取更多详细信
我查找了日志...我有ELMAH设置为该网站,没有在那里。所以我不确定它在说什么服务日志。
任何帮助将不胜感激。
您可以启用错误日志记录是这样的:
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="c:\TEMP\web_messages.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
</system.diagnostics>
含硒较多的信息在这里:http://msdn.microsoft.com/en-us/library/ms730064.aspx
输出文件可以在notedpad或“服务跟踪查看器”中查看 - 看http://msdn.microsoft.com/en-us/library/aa751795.aspx
如果你在IIS中主机,你可以使用远程调试:http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx
那么...有没有办法调试我的本地机器上运行的东西?托管在我的本地机器上的一个网站上,用VS调试器 - >附加到过程方法? – 2010-11-03 20:12:26
如果它是从VS启动的,它已经处于调试模式,您应该能够正常插入断点。 如果它在VS外运行,如果您正在运行调试版本,则可以使用attach进程。 – Fedearne 2010-11-03 20:40:20
问题是,我相信它会在反映服务的元数据时抛出错误,可能是因为我在某处丢失了某个属性。我已经尝试覆盖'Handle Exception'并在其中粘贴'Debugger.Break();',但它永远不会被击中。 – 2010-11-05 14:19:52
此外,你可以su订阅您的objectcontext的发送请求事件:http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.sendingrequest.aspx。
然后,在事件处理程序中设置一个断点并检查请求。
你是如何“浏览到你的服务”? – 2010-11-03 16:17:03
http://localhost/services/myservice.svc我有调试安装程序使用IIS。 – 2010-11-03 16:24:04