La convivencia entre los ASP tradicional y ASP.NET no crea problemas en los servidores de Microsoft desde la versión 2000.
Es suficiente habilitar la compatibilidad con ASP e instalar .NET Framework para aprovechar ambas tecnologías en sus aplicaciones web.
Los problemas surgen en la necesidad de utilizar, intercambiar, leer las variables de Sesión y Aplicación de ambas tecnologías.
Cómo compartir variables de aplicación y sesión entre Asp y Asp.net
Las variables de ambas tecnologías utilizan áreas de memoria dentro de su entorno de ejecución y no tienen nada en común excepto el nombre, de hecho las variables creadas por ASP serán legibles solo por esta tecnología mientras que las creadas por ASP.NET serán visibles solo dentro de este entorno. como podemos arreglar esto?
El truco, trivial pero funcional, está ahí: basta con solicitar una página ASP desde una página ASP.NET para leer el contenido de una variable Sesión e Aplicación de ese entorno, y viceversa para poder leer los objetos presentes en las páginas .NET desde ASP.
Intentemos leer una variable de aplicación presente en el entorno ASP tradicional desde una página ASP.NET. Comencemos a escribir una página ASP que contenga este código dándole el nombre "ReadAsp.asp":
<%
en caso de error, reanudar a continuación
tipo = solicitud ("tipo")
nombre = solicitud ("nombre")
si tipo = "sesión" entonces
si Sesión (nombre) = ”” entonces
Response.Write (“”)
más
Response.Write (Sesión (nombre))
terminara si
terminara si
si tipo = "aplicación" entonces
ifApplication (nombre) = ”” entonces
Response.Write (“”)
más
Response.Write (Aplicación (nombre))
terminara si
terminara si
Response.End ()
%>
Este código, que también es el presente en el ejemplo adjunto a este artículo, una vez llamado verifica qué tipo de variable desea leer y su nombre, luego lo muestra con un Response.Write trivial. Por ejemplo, para leer y visualizar el contenido de la variable de Aplicación "ejemplo", basta con llamar a esta página con los parámetros deseados:
http://localhost/ReadAsp.asp?type=Application&name=esempio</a>
Desde nuestra página ASP.NET es suficiente usar la técnica llamada "captura de URL" para llamar a esa página ASP y buscar su contenido. Si desde nuestra página ASP.NET queremos leer el contenido de la variable de Aplicación "ejemplo" utilizada en ASP, podemos escribir:
HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create (“http: //localhost/ReadAsp.Asp? Type = Application & name = esempio”);
HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse ();
StreamReader sr = nuevo StreamReader (myResponse.GetResponseStream ());
content_variable = sr.ReadToEnd ();
Simple, ¿no es así? Para hacer lo mismo pero desde una página ASP, necesitamos escribir una página ASP.NET llamada "ReadNet.aspx" con este contenido:
<% @ Page language = ”c #”%>
void Page_Load () {
string name = Solicitar ["nombre"];
string tipo = Request ["tipo"];
if (tipo == ”sesión”)
{
if (Sesión [nombre] == nulo) Response.Write (“”);
más
Response.Write (Sesión [nombre] .ToString ());
}
if (tipo == ”aplicación”)
{
if (Aplicación [nombre] == nulo) Response.Write (“”);
más
Response.Write (Aplicación [nombre] .ToString ());
}
}
Entonces, para obtener el contenido de una variable de aplicación utilizada en el entorno .NET de nuestra página ASP:
Dim objXMLHTTP, StrURL
StrURL = "http: //localhost/ReadNet.aspx? Type = application & name = esempio"
Establecer objXMLHTTP = Server.CreateObject ("MSXML2.ServerXMLHTTP")
objXMLHTTP.Open "GET", StrURL, false
StrCookie = Request.ServerVariables (“HTTP_COOKIE”) '<- queste due righe verranno spiegate di seguito
objXMLHTTP.setRequestHeader “COOKIE”, StrCookie '<…
objXMLHTTP.Send
contenuto_application = CStr (objXMLHTTP.ResponseText)
Establecer xml = Nada