2010-03-25 69 views
0

我有一個.NET 3.5程序集DAL,它通過Linq2SQL連接到數據庫。 我在GAC中部署此程序集,因爲它可以被多個業務層使用。GAC +配置中的.NET程序集

問題是:在開發環境中,我的連接字符串與生產環境中的連接字符串不同。在將程序集部署到產品GAC之前,我需要使用適當的連接字符串重新編譯它。

是否有任何方式允許部署程序集獨立於連接字符串,是從某些配置讀取信息?

回答

2

無論您將程序集部署到GAC還是網站的bin文件夾中,使用程序集的應用程序的配置都是覆蓋LinqToSQL類中的連接的配置。

在創建數據上下文

+0

當然。當天的金髮時刻......將連接字符串添加到「客戶端」應用程序的web.config,並按預期工作。 Thx mate – Dante 2010-03-25 15:43:08

+0

不用擔心,很高興能爲您服務 – 2010-03-25 21:14:39

0

DAL是否將連接字符串硬編碼到某處?如果是這樣,那不是配置部署的最佳選擇。如果您有權訪問DAL代碼,請對其進行重構,以便將連接字符串作爲構建其任何子類的參數。然後,任何使用中的應用程序都可以使用其配置文件的connectionStrings部分來存儲連接字符串。這樣,您可以隨時更改連接字符串。

0

應該將您的連接字符串存儲在您的web/app.config文件中,並在您的程序集中引用該配置設置。

連接字符串不應該被硬編碼,並且config文件有一個現有的connectionStrings部分爲此目的。

如果您需要保護連接字符串,您可以encrypt this section,但不應該依賴它作爲GAC中的保護,因爲使用ILDASM可以輕鬆查看程序集中的所有字符串(包括連接字符串)。

0

IMO,我認爲將環境特定值(如連接字符串)嵌入到GAC程序集(或任何程序集)中是錯誤的。相反,GAC中的組件應允許將連接字符串傳遞給它。

0

考慮更新您的Machine.config文件中添加連接字符串或其他配置節你應該通過這個連接字符串中從配置。這將繼承所有.NET應用程序。