2011-12-07 21 views
1

IIS上のWCFサービス。 web.configファイルから接続文字列を読み取る際に問題が発生しました。 私の接続文字列は次のようになります。Web.configから接続文字列を読み取るには

<connectionStrings> 
    <add 
    name="ABC" 
    connectionString="DEF" 
    providerName="GGG" 
    /> 
</connectionStrings> 

Global.asax.csでの私のコード:

protected void Application_Start(object sender, EventArgs e) 
     {      

      cons_Webdata = WebConfigurationManager.ConnectionStrings["ABC"].ConnectionString; 

     } 

私はエラーメッセージを持っている "cons_Webdata = .......":

オブジェクト参照がオブジェクトのインスタンスに設定されていません。

何が問題なのですか。おかげさまで

答えて

3

http://msdn.microsoft.com/en-us/library/ms178411.aspx

 System.Configuration.Configuration rootWebConfig = 
      System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot"); 
     System.Configuration.ConnectionStringSettings connString; 
     if (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0) 
     { 
      connString = 
       rootWebConfig.ConnectionStrings.ConnectionStrings["NorthwindConnectionString"]; 
      if (connString != null) 
       Console.WriteLine("Northwind connection string = \"{0}\"", 
        connString.ConnectionString); 
      else 
       Console.WriteLine("No Northwind connection string"); 
     } 
+1

"MyWebsiteRoot"とは何ですか? –

+0

IIS Webサイトのルートディレクトリ –

1

からのサンプルコードを使用し、それ以外の場合はWebConfigurationManager

protected void Application_Start(object sender, EventArgs e) 
{      
    cons_Webdata = ConfigurationManager.ConnectionStrings["ABC"].ConnectionString; 
} 

をのConfigurationManagerを使用する代わりに試してみてくださいは、WebアプリケーションhereでWebConfigurationManagerを使用する方法について確認します。設定ファイルからセクション接続文字列を読み込んで、次に示すように使用する必要があります。

  // Get the connectionStrings section. 
      ConnectionStringsSection connectionStringsSection = 
       WebConfigurationManager.GetSection("connectionStrings") 
       as ConnectionStringsSection; 

      // Get the connectionStrings key,value pairs collection. 
      ConnectionStringSettingsCollection connectionStrings = 
       connectionStringsSection.ConnectionStrings; 

      // Get the collection enumerator. 
      IEnumerator connectionStringsEnum = 
       connectionStrings.GetEnumerator(); 

      // Loop through the collection and 
      // display the connectionStrings key, value pairs. 
      int i = 0; 
      Console.WriteLine("[Display the connectionStrings]"); 
      while (connectionStringsEnum.MoveNext()) 
      { 
       string name = connectionStrings[i].Name; 
       Console.WriteLine("Name: {0} Value: {1}", 
       name, connectionStrings[name]); 
       i += 1; 
      } 
関連する問題