none
Global.asax - não funcionando após deploy RRS feed

  • Pergunta

  • Ola pessoal,

    Tenho uma aplicação .NET 2.0 e estou utilizando Global.asax para controlar url amigáveis. Tudo funciona lindo e maravilhoso localmente, mas qdo faço o deploy para o servidor, simplismente parace que não há Global.asax.

    Utilizo ele da maneira que o VS2005 cria, sem codebehinde, local roda legal.

    Alguém pode me orientar?
    terça-feira, 5 de dezembro de 2006 10:09

Todas as Respostas

  • Thiago,

    mas ocorre algum erro? Qual? Como está seu Global.asax?

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    terça-feira, 5 de dezembro de 2006 10:19
    Moderador
  • Ola Ricardo,

    A impressão que eu tenho é que ele nao executa mesmo. Tem alguma forma de depurar como os response.write do asp 3?

    Se eu removo as dlls do deploy do global.asax da pasta bin, nada acontece, mas se eu deixo as dlls la e ponho um global.asax no raiz da aplicação como script, o servidor reclama que existem 2 classes com mesmo nome.

    segue código:

    <%@ Application Language="C#" %>

    <script runat="server">
        private System.Collections.Hashtable paramUrlCache = System.Collections.Hashtable.Synchronized(new System.Collections.Hashtable());

        protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            //Instancia o Contexto Atual
            System.Web.HttpContext context = HttpContext.Current;

            //Captura o Endereço Requisitado
            string url = context.Request.Path;
            string newUrl = "";

            if (url.IndexOf("Content") > 0)
            {
                //Trata a URL requisitada. Verificando se é uma URL Amigável válida, monta um nova URL
                //Nesta etapa, pode-se utilizar dos mais variados recursos: Expressões regulares,
                //comparar com informações de um arquivo de configuração, buscar no Banco de Dados referência para esta URL, etc;
                string[] array = url.Split('/');
                string vUrlNome = array[array.Length - 1];

                if (paramUrlCache[vUrlNome] == null)
                {
                    using (clsNoticia objNoticia = new clsNoticia())
                    {
                        MySql.Data.MySqlClient.MySqlDataReader dr;
                        dr = objNoticia.ObterNoticia(int.MinValue, "", "", "", "B", "", vUrlNome, int.MinValue, int.MinValue, "");
                        if (dr.Read())
                        {
                            paramUrlCache[vUrlNome] = dr["cod_notic"].ToString();
                        }
                        dr.Close();
                    }
                }
                newUrl = url.Replace("Content/" + vUrlNome, "Home/default.aspx?cod_notic=" + paramUrlCache[vUrlNome].ToString());
            }

            if (url.IndexOf("FontePesquisa") > 0)
            {
                //Trata a URL requisitada. Verificando se é uma URL Amigável válida, monta um nova URL
                //Nesta etapa, pode-se utilizar dos mais variados recursos: Expressões regulares,
                //comparar com informações de um arquivo de configuração, buscar no Banco de Dados referência para esta URL, etc;
                string vTipo = "";
                string[] array = url.Split('/');
                vTipo = array[array.Length - 1];

                newUrl = url.Substring(0, url.IndexOf("FontePesquisa"));
                newUrl += "Consulta/Default.aspx?CodTipo=" + vTipo.Substring(0, 1);
            }

            if (url.IndexOf("PesquisaRapida") > 0)
            {
                //Trata a URL requisitada. Verificando se é uma URL Amigável válida, monta um nova URL
                //Nesta etapa, pode-se utilizar dos mais variados recursos: Expressões regulares,
                //comparar com informações de um arquivo de configuração, buscar no Banco de Dados referência para esta URL, etc;
                string vBusca = "";
                string[] array = url.Split('/');
                vBusca = array[array.Length - 1];

                newUrl = url.Substring(0, url.IndexOf("PesquisaRapida"));
                newUrl += "Consulta/Default.aspx?CodTipo=Tudo&Busca=" + vBusca;
            }

            //Redireciona para a URL verdadeira
            if (newUrl != "")
                context.RewritePath(newUrl);
        }


        void Application_Start(object sender, EventArgs e)
        {
            // Code that runs on application startup

        }
       
        void Application_End(object sender, EventArgs e)
        {
            //  Code that runs on application shutdown

        }
           
        void Application_Error(object sender, EventArgs e)
        {
            // Code that runs when an unhandled error occurs

        }

        void Session_Start(object sender, EventArgs e)
        {
            // Code that runs when a new session is started

        }

        void Session_End(object sender, EventArgs e)
        {
            // Code that runs when a session ends.
            // Note: The Session_End event is raised only when the sessionstate mode
            // is set to InProc in the Web.config file. If session mode is set to StateServer
            // or SQLServer, the event is not raised.

        }
          
    </script>

    terça-feira, 5 de dezembro de 2006 10:26
  • Thiago,

    mas qual a mensagem de erro exata que você recebe?

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    terça-feira, 5 de dezembro de 2006 10:51
    Moderador
  • Nenhuma... como eu disse, a impressão que eu tenho é que ele nem está sendo chamado.

    Para usar o global.asax, posso forcar o uso de alguma maneira, como informar a presença dele no web.conf ou algo similar?

    terça-feira, 5 de dezembro de 2006 11:00
  • Thiago,

    só a presença dele no diretório virtual deveria ser suficiente.... mas você não disse que aparece uma mensagem reclamando de 2 classes com o mesmo nome? Qual é a mensagem?

     


    Ricardo Oneda
    http://oneda.mvps.org/blog

    terça-feira, 5 de dezembro de 2006 11:38
    Moderador
  • Desculpe a demora, é q só posso efetuar testes em casa e de madrugada, qdo tem menos acesso ao site. Fiz o global.asax passar a usar o codebehind e nao funcionou. Lembrei que o servidor que uso trabalha com Medium Trust, acredtio que seja a causa. Eu até fiz um Redirect pra outro site caso o evento Application_BeginRequest fosse chamado e ele nem reage.

    Coloquei entao o global.asax com código no script na raiz do dominio e deixei a dll la dentro, retornou o seguinte erro que me faz acreditar que o global.asax está instanciado, mas nao executa, acredito que seja pelo nivel de segurança Medium Trust.

    O que mais posso fazer?


    Server Error in '/' Application.
    Compilation Error
    Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

    Compiler Error Message: CS0433: The type 'ASP.global_asax' exists in both 'c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\cac59422\00695790_ae19c701\App_global.asax.DLL' and 'c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_global.asax.oeaaoehq.dll'

    Source Error:

    [No relevant source lines]


    Source File: App_Web_masterpage.master.457f2557.pp2b00bm.0.cs    Line: 127


    Show Detailed Compiler Output:

    c:\windows\system32\inetsrv> "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\22208bf1\80020873_2708c701\MySQL.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\6049a6c8\0087dec3_1987c501\ICSharpCode.SharpZipLib.DLL" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\cac59422\00695790_ae19c701\App_global.asax.DLL" /R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\06e090a2\00a703fb_a419c701\App_Web_masterpage.master.457f2557.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\d31d0856\00695790_ae19c701\App_Code.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_global.asax.oeaaoehq.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /out:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_Web_masterpage.master.457f2557.pp2b00bm.dll" /debug- /optimize+ /win32res:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\0rrplbae.res" /w:4 /nowarn:1659;1699  "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_Web_masterpage.master.457f2557.pp2b00bm.0.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_Web_masterpage.master.457f2557.pp2b00bm.1.cs"


    Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42
    for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
    Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

    c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_Web_masterpage.master.457f2557.pp2b00bm.0.cs(127,23): error CS0433: The type 'ASP.global_asax' exists in both 'c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\cac59422\00695790_ae19c701\App_global.asax.DLL' and 'c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_global.asax.oeaaoehq.dll'
    c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\assembly\dl3\cac59422\00695790_ae19c701\App_global.asax.DLL: (Location of symbol related to previous error)
    c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f513e404\f5d4dedd\App_global.asax.oeaaoehq.dll: (Location of symbol related to previous error)



    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210
    quinta-feira, 7 de dezembro de 2006 02:43
  • Ola Thiago!

     

    Você conseguiu resolver este problema?

    Qual foi a solução?

    Estou passando pela mesma situação.

     

    obrigado,

     

     

    quarta-feira, 9 de janeiro de 2008 12:36
  • eu estou com o mesmo problema....

     

    parece q ele não "passa" pelo global.asax

     

    quinta-feira, 17 de julho de 2008 17:11