2011-08-31 10 views
7

Mam odziedziczoną starszą klasyczną stronę asp, którą muszę obsługiwać i jestem w trakcie konfigurowania środowiska programistycznego/debugowania, więc nie muszę pracować na serwerze produkcyjnym .Odczytywanie wartości web.config w klasycznej ASP

Kod jest trochę chaotyczny, a w różnych miejscach w różnych plikach .asp znajdują się setki ciągów połączeń. Wszystkie te zawierają zakodowane odniesienia do serwera SQL, itp.

Naprawdę nie chcę, aby zastąpić wszystkie te z moich lokalnych ustawień środowiska SQL środowiska deweloperskiego dev, więc zastanawiałem się, czy był łatwy sposób aby uzyskać klasyczny ASP do odczytu z pliku .net web.config. W ten sposób mogłem zmienić wszystkie zakodowane ciągi połączeń w celu odczytania z tego jednego miejsca, a następnie muszę tylko zdefiniować szczegóły serwera w jednym miejscu.

To by znaczyło, że mógłbym wtedy napisać lokalnie kod & i wszystko, co musiałem zrobić, to zmienić kilka wartości w pliku web.config przed wdrożeniem.

Proszę podać jasne przykłady w swojej odpowiedzi, ponieważ jestem nowy w klasycznym asp & Naprawdę nie lubię tego na tym etapie. Nie można czekać na przebudowę wszystko w .NET;)

Dzięki

Odpowiedz

5

Wystarczy użyć po stronie serwera obejmują wszystkie ustawienia aplikacji, której potrzebują. Będzie to znacznie łatwiejsze (i szybsze) wdrożenie niż czytanie pliku web.config i zapewnia taką samą elastyczność.

config.asp

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

Default.asp

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

Z tego co mówisz można poprawić resztę swojego dziedzictwa wykorzystaniem SSI w innych miejscach też.

+0

Dzięki, tak, jest wiele rzeczy, które mógłbym zrobić, żeby to poprawić, ale o ile mi chodzi, to martwy kod. Chcę zrobić tak mało, jak to tylko możliwe i przebudować go od nowa :) – Bob

+0

@bob: Ale użyj rozszerzenia pliku .asp nie .inc. Jeśli serwer IIS ma mapowanie. *, Możesz przypadkowo umożliwić zewnętrznemu komputerowi pobranie /config.inc. Jeśli ciągi połączeń mogą zawierać nazwy użytkownika i hasła, więc nie jest to coś, na co chcesz zezwolić na dostęp zewnętrzny. – AnthonyWJones

+0

@Anthony Dobry punkt - Odpowiednio zaktualizowałem swoją odpowiedź. – Filburt

20

Zazwyczaj miejsce to zrobić w klasycznym ASP jest w zmiennej aplikacji w pliku Global.asa:

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

Następnie można użyć application("connectionstring") na każdej stronie bez konieczności mieć to na stronie.

+2

+1 Nie wiedziałem, że możesz to zrobić. –

+1

+1 Czysty kod, łatwy w użyciu. Odwołaj się do strony [to] (https://www.w3schools.com/asp/asp_globalasa.asp), aby dowiedzieć się więcej o pliku global.asa. –

+0

Nigdy o tym nie myślałem ..: -o (Świetny sposób na zrobienie tego w 2017 r.);) – yaqoob

Powiązane problemy