2011-12-02 54 views
0

我正在解決我們的應用程序中的WCF問題,並打開了WCF跟蹤,VS 2010中的WCF服務配置編輯器將WCF服務配置編輯器添加到以下sharedListener中在web.config:CLR找不到類型,即使它在同一個程序集中

<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相同的程序集的成員類,它怎麼能不能找到它?

其次,由於異常堆棧中的每一行都來自系統代碼,因此我究竟如何開始調試根本原因?

+0

你試過刪除所有的程序集信息,只是離開這個類型=「System.Diagnostics.XmlWriterTraceListener」 –

回答

1

您使用的是.NET 4.0嗎?

如果不是,則必須小心服務配置實用程序。它會硬編碼聽衆的版本爲4.0,你需要手動更改你的web.config

相關問題