1

我的 WCF(具有客户端和服务器证书)有问题

例外:

System.ServiceModel.ServiceActivationException:无法激活请求的服务“ http://localhost/CustomerServiceSite/Customer.svc ”。有关详细信息,请参阅服务器的诊断跟踪日志。

错误堆栈跟踪:

DoNegotiation(时间跨度超时) System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(时间跨度超时) System.ServiceModel.Security.TlsnegoTokenProvider.OnOpen(时间跨度超时) System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(时间跨度超时) System.ServiceModel.Channels。 CommunicationObject.Open(TimeSpan timeout) System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open(TimeSpan timeout) System.ServiceModel.Security.SecurityUtils.OpenTokenProviderIfRequired(SecurityTokenProvider tokenProvider, TimeSpan timeout) System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout) System .ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(时间跨度超时) System.ServiceModel.Channels.CommunicationObject。Open(TimeSpan timeout) OnOpen(TimeSpan timeout) System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(SecuritySessionOperation operation, EndpointAddress target, Uri via, SecurityToken currentToken, TimeSpan timeout) System. ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan timeout) System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout) ClientSecuritySessionChannel.OnOpen(TimeSpan timeout) System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) System.ServiceModel.Channels。 ServiceChannel.OnOpen(时间跨度超时) System.ServiceModel.Channels.CommunicationObject.Open(时间跨度超时) System.Runtime.Remoting.Proxies.RealProxy。HandleReturnMessage(IMessage reqMsg, IMessage retMsg) System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 类型) System.ServiceModel.ICommunicationObject.Open(TimeSpan timeout) System.ServiceModel.ICommunicationObject.Open(TimeSpan timeout) Open( )

诊断设置(在 system.serviceModel 内)

<diagnostics>
  <messageLogging logEntireMessage="true" logMalformedMessages="true"
  logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
</diagnostics>

我在哪里可以看到诊断错误?有人知道可能是什么问题吗?

4

2 回答 2

4

该配置不足以记录这些错误消息。

您需要的是两方面的 - 首先<system.serviceModel>是您已经拥有的内部部分,以指示 WCF 进行日志记录。

但是您还需要第二部分 - 内部<system.diagnostics>- 来定义将该信息记录到的位置!像这样的东西:

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel.MessageLogging" switchValue="Information, ActivityTracing">
           <listeners>
             <add name="messages"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="c:\logs\messages.svclog" />
          </listeners>
        </source>
    </sources>
    <trace autoflush="true" />
</system.diagnostics>

命名空间中定义了几个不同的日志侦听器System.Diagnostics- 这里的这个侦听器会将信息记录到基于 XML 的*.svclog文件中,然后您可以使用Service Trace Viewer Tool查看和分析该文件。

在 MSDN 上阅读有关配置消息日志的更多信息。

于 2010-09-12T20:15:04.633 回答
2

只需使用事件查看器应用程序查看应用程序事件日志。

于 2010-09-12T20:18:48.190 回答