Global.asax.cs在服务器上不可见

时间:2012-09-25 22:18:35

标签: asp.net-mvc-3 iis-7 global-asax

在Server08下运行IIS7。我有一个网站项目,并且习惯于在过去多次手动编辑部署站点上的Global.asax.cs。最近我发现只有Global.asax存在且只有:

<%@ Application Codebehind="Global.asax.cs" Inherits="myDomain.MvcApplication" Language="C#" %>

我的任何活跃,正常运行的网站都没有Global.asax.cs文件存在/可见。

我已经在这里Global.asax can't find code-behind classwhere is the codes in Global.asax in mvc3?点了这里,但没有到达任何地方。第二个链接包含注释:'那是因为它是一个已编译的Web应用程序。您必须在Visual Studio中将其作为项目进行查看。'

但由于我的项目一直是一个网站 - 我没有转换它(故意)我对改变的行为感到困惑。

但是当我进入VS12并查看解决方案的WebProject的上下文菜单时,它会显示“转换为Web应用程序”。网站的文件夹结构包含App_Data或App_Start。在我看来,这两个在VS建立的事实是将项目视为一个网站,为什么那么,Global.cs编译成/ bin?

我将重复一遍 - 我过去曾亲手编辑过这些东西 - 我不是积极的,但可能准确地说这是我在安装VS12之后第一次尝试这样做。并且,更难以思考 - 直到最近我才实施了“One Click Publishing”服务,以便可以发挥作用。

验证? 我想要我需要编辑一个简单的更新而不需要完全重新部署。

THX

3 个答案:

答案 0 :(得分:4)

我认为'One Click Publishing'很可能是这里的罪魁祸首。我创建了一个示例Web站点项目进行实验,当我在Visual Studio中使用发布功能时,生成的文件确实缺少Global.asax.cs文件。相反,使用名为“App_global.asax.dll”的编译创建bin文件夹,即使它是Web站点而不是Web应用程序。我猜这可能与你发生的事情类似。

如果没有,我找到了一个可能对您有用的链接,以便再次能够编辑服务器上的类。特别是,请查看为全局代码重新创建类文件的第二个答案(不被接受为最佳答案的答案):Where is the Global.asax.cs file?

我尝试了这个解决方案,并验证了类文件在服务器上是可编辑的,并且它是在运行时动态编译的(我对文件所做的修改立即生效)。

希望这有帮助!

答案 1 :(得分:0)

编辑global.asax后,需要重建DLL并将其上传到bin文件夹。否则,您的更改将不会生效。

答案 2 :(得分:0)

您可以上传包含该文件中代码的global.asax的web版本,这显然不需要.cs代码。我以前在应用程序中使用aspx文件,但我从未在GLobal.asax文件中尝试过。