2011-09-09 148 views
0

我有一個使用兩個連接字符串的vb.net程序。VB.Net從外部文件中讀取2個連接字符串

該程序將用於多個域上的多個Web服務器,唯一的區別是兩個連接字符串。

從與我的實際.vb代碼分開的文件中讀取這些連接字符串的最佳解決方案是什麼?

理想情況下,我希望能夠將.vb和連接字符串文件放置到任意數量的asp.net網站上的自己的文件夾中,而不是更新其他任何內容(例如將任何連接添加到web.config或任何其他任何連接)比包含連接字符串的外部文件,我假設像xml就足夠了?

如果可能,你能給我一些代碼示例嗎?

回答

1

我會把它們放在同一個web.config中。給他們兩個不同的名字,並依賴於你所在的服務器。您可以使用: Request.ServerVariables(「SERVER_NAME」) - 或 - Request.ServerVariables(「LOCAL_ADDR」) 根據您的預期回報,可以讓webconfigurationmanager讀取兩個connectionStrings屬性之一。您最好的選擇是從底頁設置會話變量。調整它以查看Session是否已被填充,因此,您可以在整個應用程序中讀取變量。

如果你使用兩個不同的.config文件,你將遇到一個問題,你將不得不根據你在哪個服務器上編寫你想要始終使用的整個應用程序。
如果您在另一個web.config文件中包含web.config文件,則它與在同一個web.config文件中添加相同的兩個不同connectionStrings相同。

1

使用內置的.config支持。

如果添加app.config文件到你的項目,你可以添加一個connectionStrings部分它,您可以訪問使用ConfigurationManager.ConnectionStrings財產。

請不要試圖重新發明輪子。

+0

其中一些其他文件已經有一個app.config文件,我不想編輯任何關於我將它們放入的網站。我可以在我自己的文件夾中有單獨的.config文件嗎? – TGuimond

+0

@TGuimond - 您可以擁有一個單獨的文件,但不是不更改現有的'.config',並且可能對應用程序進行更改。我不明白你爲什麼拒絕改變配置文件,因爲這是它的目的。 – Oded

+0

我明白你的意思,但我無法直接訪問每個應用程序envinronments,並且我需要爲每個不同的組織發送代碼。所有這些組織都非常安全,並且不允許外部開發人員在其Web應用程序中編輯任何內容。將zip文件壓縮並告訴他們將其放在他們的應用程序中,而不是要求他們編輯.config文件等,這簡直沒那麼麻煩。 – TGuimond

相關問題