2011-08-31 19 views
7

私はサポートが必要な従来の古典的なaspサイトを継承していますが、実稼働サーバーで作業する必要がないようにdev/debugging環境を設定しています。Classic ASPのweb.config値を読む

コードはちょっと混乱していて、さまざまな.aspファイルの中に文字通り何百もの接続文字列が点在しています。これらはすべてSQLサーバーなどのハードコーディングされた参照を含んでいます

私は本当にこれらのすべてを自分のローカルの開発環境のSQL DB設定に置き換えたくないので、簡単な方法があるかどうか疑問に思っていました.net web.configファイルから読み込む古典的なASPを取得する。このようにして、ハードコーディングされた接続文字列のすべてをこの1か所から読み取るように変更すると、サーバーの詳細を1か所で定義するだけで済みます。

これはコード&をローカルでデバッグできることを意味し、展開する前にweb.configのいくつかの値を変更するだけで済みます。

私は古典的なaspを初めて使ったので、答えに明確な例を示してください&私は本当にこの段階でそれを好きではありません。

おかげ

答えて

5

はちょうどあなたが必要なすべてのアプリの設定で、サーバー側が-含める使用); .NETでそれをすべてを再開発するために待つことができません。 web.configを読み込むよりも、実装がはるかに容易(かつ高速)になり、同じ柔軟性が得られます。

config.aspあなたはあまりにも他の場所でSSIを使用して、遺産の残りの部分を改善することができた言うことから

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

Default.aspファイル

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

+0

ありがとう、ええ、私はそれを改善するためにできる負荷がありますが、私が心配している限り、それはデッドコードです。できるだけ少なくしてゼロから再開発したいと思っています:) – Bob

+0

@bob:ファイル拡張子.aspではなく.incを使用してください。 IISサーバーに。*マッピングがある場合、誤って外部のマシンが/config.incをダウンロードする可能性があります。接続文字列にユーザー名とパスワードが含まれている可能性があるので、外部のアクセスを許可したいものではありません。 – AnthonyWJones

+0

@Anthony良い点 - 私はそれに応じて私の答えを更新しました。 – Filburt

20

従来のASPでこれを行うにはいつもの場所には、Global.asaファイル内のアプリケーション変数にある:あなたは、ページに含まれていすることなく、すべてのページにapplication("connectionstring")を使用することができます

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

+2

+1私はあなたがそれを行うことができるとは思わなかった。 –

+1

+1クリーンなコード、使いやすい。 global.asaファイルの詳細を知るには[this](https://www.w3schools.com/asp/asp_globalasa.asp)ページを参照してください –

+0

これまで考えていたことはありません。:-o(2017年にこれを行う素晴らしい方法);) – yaqoob

関連する問題