2012-04-02 69 views
5

我接收來自WCF服務的FaultException當它被調用如下:TypeInitializationException:關於「vService.CheckService」的類型初始引發異常

2012-04-02 16:26:00.3593|Error|System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The type initializer for 'vService.CheckService' threw an exception. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: 
System.TypeInitializationException: The type initializer for 'vService.CheckService' threw an exception. ----> System.NullReferenceException: Object reference not set to an instance of an object. 
    at vService.CheckService..cctor() in d:\working\code\VioletServer\vService\CheckService.cs:line 14 
    --- End of inner ExceptionDetail stack trace --- 
    at vService.CheckService..ctor() 
    at CreatevService.CheckService() 
    at System.ServiceModel.Dispatcher.InstanceProvider.GetInstance(InstanceContext instanceContext, Message message) 
    at System.ServiceModel.Dispatcher.InstanceBehavior.GetInstance(InstanceContext instanceContext, Message request) 
    at System.ServiceModel.InstanceContext.GetServiceInstance(Message message) 
    at System.ServiceModel.Dispatcher.InstanceBehavior.EnsureServiceInstance(MessageRpc& rpc) 
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) 
    ...). 

線CheckService.cs 14是

private static string connStr = ConfigurationManager.ConnectionStrings["violetdb"].ConnectionString; 

在這種情況下,異常是什麼意思?我該如何解決?


//CheckService.cs 
public class CheckService : ICheckService 
{ 
    private static string connStr = ConfigurationManager.ConnectionStrings["violetdb"].ConnectionString; 
    MessageRepository _repo = new MessageRepository(connStr); 

    public CheckService(){} 

    public CheckService(MessageRepository repo) 
    { 
     _repo = repo; 
    } 

    public void SendMessage(string sender, string recipient, string messagetext) 
    { 
     _repo.DeliverMessage(sender,recipient,messagetext); 
    } 
} 

回答

4

最有可能的WCF服務沒有在其應用程序配置文件命名爲「violetdb」的連接字符串。

一個TypeInitializerException被拋出在這種情況下,因爲你有一個static場正​​在被初始化進取型的建設,而且由於ConnectionStrings["violetdb"]調用返回null,並且它拋出NullReferenceException

底線,請檢查配置文件的<connectionStrings>部分,並確保連接字符串存在。

+0

我在'web.config'文件的'''部分有'violetdb'連接字符串。由於該項目是一個類庫,我只是添加了一個'app.config'文件並複製連接字符串。我仍然得到例外。 – Animesh 2012-04-02 11:32:47

+0

你在哪裏託管你的應用程序?它是自行託管的(即控制檯應用程序或Windows服務?它是否託管在IIS中? – 2012-04-02 12:38:16

+0

它是自行託管在控制檯應用程序中 – Animesh 2012-04-02 12:41:53

相關問題