如何调试WCF数据服务?

时间:2010-11-03 16:13:58

标签: asp.net wcf wcf-data-services

我在 Asp.Net 网站上托管了 WCF数据服务。这是我的web.config服务部分:

<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>

          

我的config.UseVerboseErrors = true;方法中有InitializeService

我点击F5我进入调试模式,浏览到我的服务,收到错误,虽然它没有在VS中断。我不知所措。

错误btw:服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志。

我已经查找了日志...我为该网站设置了 ELMAH ,没有任何内容。所以我不确定它正在谈论的服务日志

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以启用错误日志记录,如下所示:

<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

可以在记事本或“服务跟踪查看器”中查看输出文件 - 请参阅http://msdn.microsoft.com/en-us/library/aa751795.aspx

如果您在IIS中托管,则可以使用远程调试:http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx

答案 1 :(得分:0)

此外,您可以订阅objectcontext的sendingrequest事件:http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.sendingrequest.aspx

然后,在事件处理程序中设置断点并检查请求。