2014-07-24 111 views
3

我正在使用抽象類從我的App.config文件中獲取ConnectionString。然而,而不是ConnectionString中指定的應用程序自帶了......連接字符串不從項目中的App.config中讀取

{data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true} 

我不知道在哪裏此連接字符串是從哪裏來的。我沒有安裝SQL Express。我知道不會訪問正確的App.config,因爲我添加了一個名爲foo的虛擬連接字符串,並且在通過調試而不是兩個步驟執行調試時僅拾取了一個連接字符串。這就像應用程序從另一個App.config獲取連接字符串!

這裏是我的類

using System; 
using System.Configuration; 

namespace MyApiUpdater.Data 
{ 
    public abstract class ConnectionAccess 
    { 

     protected string ConnectionString 
     { 
      get 
      { 
       return ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString; 
      } 
     } 
    } 
} 

,這裏是我的app.config文件

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
     <add name="MyDatabase" connectionString="Server=MyDatabaseServer;Database=MyDBName;Trusted_Connection=True;" />\ 
     <add name="foo" connectionString="Server=MyDatabaseServer;Database=MyDBName;Trusted_Connection=True;" /> 
    </connectionStrings> 
</configuration> 
+0

您的解決方案中是否有多個項目?例如,如果您是從單元測試項目運行,它將使用單元測試項目中的app.config。 – paqogomez

+0

Re「我不知道這個連接字符串是從哪裏來的,」在整個解決方案中,它可能只會幫助CTRL + F'=。\ SQLEXPRESS'。上述評論者有一個很好的觀點,這可能會導致您的問題。但是,這可能是一個更容易找出來自哪裏的方法。 –

+0

我確實有兩個項目,另一個項目有一個App.config。但是,該App.config中不包含連接字符串信息。第二個項目是在第一個項目中使用類的UI。 – webworm

回答

0

看看這個: Override machine.config by web.config

而且,絕對確保你是在正確的配置文件在Visual Studio中,因爲您可以意外地從錯誤的文件夾中抓取並編輯一個文件夾,並且這樣做會讓您的應用程序抓取連接字符串e machine.config。

請參閱:Where Is Machine.Config?並查看該文件,您將看到錯誤的字符串來自哪裏。

附加標籤:web.config

相關問題