2011-08-31 54 views
7

He heredado un sitio de asp clásico heredado que necesito admitir y estoy en el proceso de configurar un entorno de depuración/depuración para no tener que trabajar en el servidor de producción .Lectura de valores de web.config en ASP clásico

El código es un poco desordenado, y literalmente hay cientos de cadenas de conexión repartidas por todo el lugar en varios archivos .asp. Todos estos contienen referencias codificadas al servidor SQL, etc.

Realmente no quiero tener que reemplazar todo esto con mi configuración de DB SQL del entorno de desarrollo local, así que me preguntaba si había una manera fácil para obtener ASP clásico para leer desde un archivo .net web.config. De esta forma podría cambiar todas las cadenas de conexión codificadas para leer desde este lugar, y luego solo tengo que definir los detalles del servidor en un solo lugar.

Esto significa que podría escribir el código & depurar localmente, y todo lo que tendría que hacer es cambiar un par de valores en el web.config antes de la implementación.

Proporcione ejemplos claros en su respuesta, ya que soy nuevo en el ASP clásico & Realmente no me gusta en este momento. No puedo esperar para volver a desarrollar todo en .NET;)

Gracias

Respuesta

5

sólo tiene que utilizar un server-side-incluyen con todos los ajustes de la aplicación que necesita. Será mucho más fácil (y más rápido) implementar que leer un web.config y darle la misma flexibilidad.

CONFIG.ASP

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

default.ASP

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

De lo que se dice que podría mejorar el resto de su herencia usando SSI en otros lugares también.

+0

Gracias, sí, hay muchas cosas que podría hacer para mejorarlo, pero, en lo que a mí respecta, es un código muerto. Quiero hacer lo menos posible con él y volver a desarrollarlo desde cero :) – Bob

+0

@bob: Pero use la extensión de archivo .asp no .inc. Si el servidor IIS tiene una asignación. *, Puede accidentalmente hacer que una máquina externa descargue /config.inc. Si las cadenas de conexión pueden contener nombres de usuario y contraseñas, no es algo a lo que le gustaría permitir el acceso externo. – AnthonyWJones

+0

@Anthony Buen punto: actualicé mi respuesta en consecuencia. – Filburt

20

El lugar habitual de hacer esto en ASP clásico está en una variable de aplicación en el archivo global.asa:

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

continuación, puede utilizar application("connectionstring") en cada página sin necesidad de tener una inclusión en la página.

+2

+1 No me di cuenta de que podrías hacer eso. –

+1

+1 Código limpio, fácil de usar. Consulte la página [this] (https://www.w3schools.com/asp/asp_globalasa.asp) para obtener más información sobre el archivo global.asa –

+0

Nunca antes había pensado en eso ...: -o (Gran manera de hacerlo en 2017);) – yaqoob