2011-08-31 13 views
7

Ho ereditato un sito leg classico di asp che devo supportare e sto creando un ambiente di sviluppo/debug in modo da non dover lavorare sul server di produzione .Leggere valori web.config in ASP classico

Il codice è un po 'caotico, e ci sono letteralmente centinaia di stringhe di connessione sparse per il posto in vari file .asp. Questi contengono tutti riferimenti hard-coded al server SQL, ecc.

Non voglio davvero doverli sostituire tutti con le impostazioni del DB SQL dell'ambiente di sviluppo locale, quindi mi chiedevo se c'era un modo semplice per ottenere l'asp classico da leggere da un file .net web.config. In questo modo ho potuto modificare tutte le stringhe di connessione hard-coded da leggere da questo unico punto e quindi ho solo bisogno di definire i dettagli del server in un unico punto.

Ciò significa che potrei quindi scrivere il codice & debug localmente e tutto quello che dovrei fare è cambiare un paio di valori nel web.config prima della distribuzione.

Si prega di fornire esempi chiari nella risposta, in quanto io sono nuovo al classico asp & Non mi piace davvero in questa fase. Non vedo l'ora di riqualificare tutto in .net;)

Grazie

risposta

5

basta usare un server-side-comprendono con tutte le impostazioni dell'applicazione è necessario. Sarà molto più facile (e più veloce) da implementare che leggere un web.config e darti la stessa flessibilità.

config.asp

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

default.ASP

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

Da quello che dici si potrebbe migliorare il resto della tua eredità utilizzando SSI in altri posti.

+0

Grazie, sì, ci sono un sacco che potrei fare per migliorarlo, ma per quanto mi riguarda è un codice morto. Voglio fare il meno possibile con esso e ridistribuirlo da zero :) – Bob

+0

@bob: Ma usa l'estensione del file .asp not .inc. Se il server IIS ha una mappatura. *, È possibile che accidentalmente sia possibile per un computer esterno scaricare /config.inc. Se le stringhe di connessione possono contenere nomi utente e password, non è qualcosa a cui si desidera consentire l'accesso esterno. – AnthonyWJones

+0

@Anthony Buon punto - Ho aggiornato la mia risposta di conseguenza. – Filburt

20

Il solito posto per fare questo in ASP classico è in una variabile di applicazione nel file Global.asa:

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

È quindi possibile utilizzare application("connectionstring") in ogni pagina, senza dover avere un include nella pagina.

+2

+1 Non mi rendevo conto che potevi farlo. –

+1

+1 Codice pulito, facile da usare. Consulta la pagina [this] (https://www.w3schools.com/asp/asp_globalasa.asp) per saperne di più sul file global.asa –

+0

Mai pensato prima ...: -o (Ottimo modo per farlo nel 2017);) – yaqoob

Problemi correlati