我正在解决我们的应用程序中的WCF问题,并在VS2010中使用WCF服务配置编辑器打开了WCF跟踪,它向web.config添加了以下sharedListener:
<sharedListeners>
<add initializeData="D:\Logs\CRCCustomerService\Web_tracelog.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>现在,当我采取措施重现错误时,System.Diagostics库抛出了一个异常,说明它找不到XmlWriterTraceListener:
Stack Trace:
System.TypeInitializationException: The type initializer for 'System.ServiceModel.DiagnosticUtility' threw an exception. ---> System.Configuration.ConfigurationErrorsException: Couldn't find type for class System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
at System.Diagnostics.TraceUtils.GetRuntimeObject(String className, Type baseType, String initializeData)
at System.Diagnostics.TypedElement.BaseGetRuntimeObject()
at System.Diagnostics.ListenerElement.GetRuntimeObject()
at System.Diagnostics.ListenerElement.GetRuntimeObject()
at System.Diagnostics.ListenerElementsCollection.GetRuntimeObject()
at System.Diagnostics.TraceSource.Initialize()
at System.Diagnostics.TraceSource.get_Listeners() 它又继续了几行,但这建立了上下文。
我的问题是,根据ObjectBrowser和Reflector的说法,XmlWriterTraceListener和System.Diagnostics是同一个程序集的成员类,它怎么会找不到它呢?
其次,由于异常堆栈中的每一行都来自系统代码,我究竟如何开始调试这里的根本原因?
发布于 2012-02-11 10:03:35
您使用的是.NET 4.0吗?
如果不是,则必须注意服务配置实用程序。它将监听器的版本硬编码为4.0,您需要手动更改您的web.config
https://stackoverflow.com/questions/8362026
复制相似问题