A coexistência entre o ASP tradicional e ASP.NET não cria problemas nos servidores Microsoft desde a versão 2000.
É suficiente habilitar o suporte ASP e instalar o .NET Framework para poder aproveitar as vantagens de ambas as tecnologias em seus aplicativos da web.
Os problemas surgem na necessidade de usar, trocar, ler as variáveis de sessão e aplicativo de ambas as tecnologias.
Como compartilhar variáveis de aplicativo e sessão entre Asp e Asp.net
As variáveis de ambas as tecnologias usam áreas de memória dentro de seu ambiente de execução e não têm nada em comum exceto o nome, na verdade as variáveis criadas pelo ASP serão lidas apenas por esta tecnologia, enquanto aquelas criadas pelo ASP.NET serão visíveis apenas neste ambiente. Como podemos consertar isso?
O truque, trivial mas funcional, está aí: é suficiente solicitar uma página ASP de uma página ASP.NET para ler o conteúdo de uma variável Sessão e Inscrição desse ambiente, e vice-versa, a fim de ler os objetos presentes nas páginas .NET do ASP.
Vamos tentar ler uma variável de aplicativo presente no ambiente ASP tradicional de uma página ASP.NET. Vamos começar a escrever uma página ASP contendo esse código, dando a ela o nome de "ReadAsp.asp":
<%
em caso de erro, retomar próximo
tipo = solicitação (“tipo”)
nome = solicitação (“nome”)
se tipo = ”sessão” então
se Sessão (nome) = ”” então
Response.Write (“”)
outro
Response.Write (Sessão (nome))
endif
endif
se tipo = ”aplicativo” então
ifApplication (name) = ”” então
Response.Write (“”)
outro
Response.Write (aplicativo (nome))
endif
endif
Response.End ()
%>
Este código, que também está presente no exemplo anexado a este artigo, uma vez chamado, verifica que tipo de variável você deseja ler e seu nome, em seguida, exibe-a com um Response.Write simples. Por exemplo, para ler e exibir o conteúdo da variável de aplicativo "exemplo", basta chamar esta página com os parâmetros desejados:
http://localhost/ReadAsp.asp?type=Application&name=esempio</a>
Em nossa página ASP.NET, é suficiente usar a técnica chamada “captura de URL” para chamar essa página ASP e buscar seu conteúdo. Se de nossa página ASP.NET quisermos ler o conteúdo da variável de aplicativo "exemplo" usada em ASP, podemos escrever:
HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create (“http: //localhost/ReadAsp.Asp? Type = Application & name = esempio”);
HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse ();
StreamReader sr = new StreamReader (myResponse.GetResponseStream ());
content_variable = sr.ReadToEnd ();
Simples, não é? Para fazer a mesma coisa, mas a partir de uma página ASP, precisamos escrever uma página ASP.NET chamada "ReadNet.aspx" com este conteúdo:
<% @ Page language = ”c #”%>
void Page_Load () {
nome da string = Solicitação [“nome”];
string tipo = Solicitação [“tipo”];
if (tipo == ”sessão”)
{
if (Sessão [nome] == null) Response.Write (“”);
outro
Response.Write (Session [nome] .ToString ());
}
if (tipo == ”aplicativo”)
{
if (Aplicativo [nome] == null) Response.Write (“”);
outro
Response.Write (Application [nome] .ToString ());
}
}
Portanto, para obter o conteúdo de uma variável de aplicativo usada no ambiente .NET de nossa página ASP:
Dim objXMLHTTP, StrURL
StrURL = “http: //localhost/ReadNet.aspx? Type = application & name = esempio”
Defina objXMLHTTP = Server.CreateObject (“MSXML2.ServerXMLHTTP”)
objXMLHTTP.Open “GET”, StrURL, falso
StrCookie = Request.ServerVariables (“HTTP_COOKIE”) '<- queste due righe verranno spiegate di seguito
objXMLHTTP.setRequestHeader “COOKIE”, StrCookie '<…
objXMLHTTP.Send
contenuto_application = CStr (objXMLHTTP.ResponseText)
Definir xml = Nothing