为什么我的ASP.NET网站上没有启动Global.asax事件?

为什么我的ASP.NET网站上没有启动Global.asax事件?,asp.net,Asp.net,我一直在开发一个ASP.NET3.5Web应用程序,它针对的是内置的web开发服务器Cassini,而不是IIS 在我的Global.asax文件中的Application_Start事件处理程序中,我有一些代码记录了网站已经启动的事实。这一切对卡西尼号来说都很好 由于使用IIS6将站点部署到测试服务器上的虚拟目录中,我发现没有写入日志条目,因此我得出结论,应用程序启动处理程序没有启动 然后,我尝试删除虚拟目录,并在测试服务器上直接从网站的根目录运行该网站,但没有任何区别——仍然没有应用程序启动

我一直在开发一个ASP.NET3.5Web应用程序,它针对的是内置的web开发服务器Cassini,而不是IIS

在我的Global.asax文件中的Application_Start事件处理程序中,我有一些代码记录了网站已经启动的事实。这一切对卡西尼号来说都很好

由于使用IIS6将站点部署到测试服务器上的虚拟目录中,我发现没有写入日志条目,因此我得出结论,应用程序启动处理程序没有启动

然后,我尝试删除虚拟目录,并在测试服务器上直接从网站的根目录运行该网站,但没有任何区别——仍然没有应用程序启动的日志条目


我知道不管我的部署环境如何,这些事件都应该触发,有人知道这里出了什么问题吗?

您是如何记录的?是否可能您的日志组件设置不正确?要进行快速测试,请尝试在
应用程序\u Start
中引发异常,这将快速告诉您是否引发了事件。

如果您向应用程序发出请求,“应用程序\u Start”是否会触发?我不相信它会在第一个请求发出之前启动。

在您部署的环境中,您调用的是什么?我这样问的原因是,如果您正在调用基于WCF的web服务(以.svc结尾),那么应用程序启动将不会启动,因为对WCF的调用不会通过ASP.NET管道进行。这不一定是Cassini的后头。

当您在Cassini中开发时,您是在用户帐户(可能是管理员帐户)下运行应用程序。一旦部署到IIS,您(希望)将在较低权限的帐户下运行


缺乏适当的权限可能是应用程序无法正常工作的原因-我会检查安全设置以写入日志(可能是写入日志文件?)。

您可能会在.NET代码运行之前遇到运行时异常。如果您查看事件查看器的应用程序日志,您可能会看到一些警告或错误,这些警告或错误将提示您正在发生的事情。

我也遇到过类似的问题,我为此绞尽脑汁了好几天。 最初的问题是其他问题——应用程序的EndRequest处理程序中没有设置cookies。 最后,我终于意识到,问题实际上是事件根本没有被触发。 我花了一些时间才弄清楚,因为我的机器一切正常。 但在生产服务器上——安静得像坟墓一样

我之所以写这篇文章,是因为我真的希望至少能从麻烦中拯救一个人

问题的真正原因是生产服务器上缺少global.asax文件

global.asax文件出现在我的计算机上,因为开发环境位于那里。 我准备了一个部署bat文件,它从开发文件夹中复制文件,删除不必要的文件并生成一个包。 好吧-在该脚本中,global.asax文件被标记为删除。 在开始部署之后,所有的问题都消失了

我希望我能帮上忙。

1)iisreset/stop
2) 将发布的代码推送到iis虚拟目录的物理文件夹。
3) IIS设置/启动
4) 发出web请求

在这之后还是不确定。doa
线程睡眠(60000)
并使用远程调试器将其附加到进程
w3wp.exe
imagename.

该名称的进程可能不止一个,但这是托管代码,附加到多个进程也没有坏处。睡眠后设定休息点。在经过一分钟的睡眠之后。

我想我也遇到了类似的问题,在一些旧项目中工作,我的印象是global.asax没有运行,因为代码将首先用于构建我的身份验证控制器,而身份验证控制器将因未注册类而失败(该部分发生在global.asax中)

原来是因为一个配置项。当我将AuthenticationModule声明移动到web配置中的handler部分时,它在IIS express中运行良好


基本上,由于一个配置项,global.asax之前执行了另一段代码,使我相信它不会被调用

我们尝试了很多东西

  • 我们还尝试将以下文件放入
    根目录
    bin目录

  • App\u global.asax.dll和App\u global.asax.compiled文件
  • 预编译app.config
  • 都没用

    为了启动asp.NET2.0网站的全局事件,我们必须将原始
    Global.asax
    而不是
    pre-compiled
    dll


    希望这对别人有帮助!干杯快乐编码!:我的解决办法很奇怪。在我的开发机器上,我正在使用localhost,我更改了它使用的端口号,然后它就工作了。

    同样在IIS管理器中启用了点网调试。它在“编辑”下。

    同意。。。试试这个。应用程序\u启动肯定会启动;)正如安德鲁所说:你是在错误的假设下运作的。更好的测试方法是让您的应用程序设置一个全局变量,该变量由Default.aspx显示。看看页面显示的内容。@John-我想你的建议没有我的激烈:)@Andrew:我决定降低我的建议。我本来打算建议重新启动系统,但决定在部分信任的环境中可能不允许这样做。谢谢David,你已经做到了。我错误地认为应用程序在(例如)编辑web.config或重置IIS后立即启动。但是它被延迟到第一个请求。