2011-08-31 70 views
7

我繼承的遺產傳統的ASP網站,我需要支持,而我在建立一個開發/調試環境的過程,所以我沒有在生產服務器上運行。在經典誦讀web.config中值ASP

的代碼是一個有點亂,並有數百literaly連接字符串的周圍各種.asp文件的地方點綴。這些都包含SQL服務器的硬編碼引用等。

我真的不想用我的本地開發環境SQL DB設置來替換所有這些,所以我想知道是否有一個簡單的方法獲取經典的asp從.net web.config文件讀取。通過這種方式,我可以將所有硬編碼的連接字符串更改爲從這個位置讀取,然後我只需要在一個位置定義服務器詳細信息。

這意味着我可以在本地編寫代碼&調試,而我所要做的就是在部署之前更改web.config中的一些值。

請提供你的答案明顯的例子,因爲我是新來的傳統的ASP &我真的不是在這個階段喜歡它。不能等待重建這一切在.NET;)

感謝

回答

5

只需使用一個服務器端包含你需要的所有應用程序設置。與讀取web.config相比,實現起來會更容易(也更快),並且給你相同的靈活性。

config.asp裏

<% 
Dim connectionString 
connectionString = "your connectionstring here" 
%> 

Default.asp的

<% Option Explicit %> 
<!-- #include virtual="config.asp" --> 
<% 
'--- 
' ... use connectionString here 
'--- 
%> 

從你告訴你可以改善在其他地方使用SSI太貴遺產的其餘部分。

+0

感謝的,是有負載我可以做些什麼來改善它,但就我個人而言這是死代碼。我想盡量少用它做與從頭開始重建吧:) – Bob

+0

@bob:但使用文件擴展名.ASP不.INC。如果IIS服務器具有。*映射,則可能意外使外部機器可以下載/config.inc。如果連接字符串可以包含用戶名和密碼,那麼它不是您想要允許外部訪問的內容。 – AnthonyWJones

+0

@Anthony好點 - 我相應地更新了我的答案。 – Filburt

20

通常發生在傳統的ASP做,這是在global.asa文件的應用程序變量:

SUB Application_OnStart 
    application("connectionstring")= "[your connectionstring]" 
END SUB 

然後你可以在每一頁上使用application("connectionstring"),而不必在頁面上包括。

+2

+1我沒意識到你可以做到這一點。 –

+1

+1清潔的代碼,易於使用。漱口[這](https://www.w3schools.com/asp/asp_globalasa.asp)頁面瞭解更多關於global.asa文件 –

+0

之前沒想到的是..:-o(偉大的方式在2017年做到這一點);) – yaqoob