4

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

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

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

我在这里检查过Global.asax 找不到代码隐藏类,这里是 mvc3 中 Global.asax 中的代码在哪里?无处可去。第二个链接包含评论:'那是因为它是一个已编译的 Web 应用程序。您必须在 Visual Studio 中将其视为一个项目。

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

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

我将通过重复来结束 - 我过去曾手工编辑过这些东西 - 我并不肯定,但可以准确地说这是我在安装 VS12 后第一次尝试这样做。而且,更加努力地思考它 - 直到最近我才实施了“一键发布”服务,以便它可以发挥作用。

核实?我想要我需要编辑一个简单的更新而无需完全重新部署。

谢谢

4

3 回答 3

4

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

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

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

希望这可以帮助!

于 2012-10-04T20:49:55.347 回答
0

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

于 2012-09-25T22:25:04.840 回答
0

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

于 2012-10-05T09:48:26.703 回答