這是我以前從未見過的問題,甚至無法找到一種不涉及暴力硬編碼的解決方法,更不用說解決方案了。當試圖連接到WCF服務應用程序中的SQL Server Express 2012數據庫時,我對ConfigurationManager
的調用不顯示添加到Web.config的連接字符串。這裏是連接字符串...忽略web配置中的連接字符串
<connectionStrings>
<add name="SRC.RMX.DB" connectionString="Data Source=COMPUTER-NAME\SQLEXPRESS;Initial Catalog=src.db;Integrated Security=True" providerName="MSSQL"/>
</connectionStrings>
這是完全相同的連接字符串的格式,我在無數真實和測試應用程序添加和服務非常相似的一個正在建造具有完全相同的連接(他們是應該在同一系統中並排工作),並使用不同的名稱,並且沒有問題。令人驚訝的是,如果測試控制檯應用程序在其app.config中使用此連接字符串添加到項目中,它將毫無問題地運行。
但嘗試和運行Web服務的單元測試,它無法在web.config中找到它。調試時,甚至沒有列出連接字符串選項。如果有一個與配置文件中的一個問題,我才明白,但我非常簡單,只是使用VS2012與該項目創建的,並只增加了連接字符串,如下圖所示...
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<connectionStrings>
<add name="SRC.RMX.DB" connectionString="Data Source=COMPUTER-NAME\SQLEXPRESS;Initial Catalog=src.db;Integrated Security=True" providerName="MSSQL"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
任何想法可能是罪魁禍首?有什麼我可以在這裏做這個連接字符串終於顯示出來嗎?我可能會錯過什麼?
求解:
哎呦。不好意思承認它,但是我拉下了一個沒有連接字符串的.config文件的版本,我的單元測試是100%肯定的。只要你認爲你確定,它支付再次檢查...
它沒有任何效果。我使用'MSSQL'作爲數據庫訪問包裝器,正如原始問題所述,具有不同名稱的同一個確切連接字符串適用於不同的項目,它們的佈局方式和控制檯應用程序使用完全相同的連接字符串它的app.config文件。您甚至不必提供有效連接的提供者名稱。 – gfish3000