为什么VS 2008 SP1不允许我编辑global.asax文件?

3
通常我创建Web应用程序项目并使用code-behind,但我有一个要求,需要使用code-inline创建一个小型的临时演示应用程序。
我向应用程序添加了一个global.asax文件,但由于某种奇怪的原因,Visual Studio 2008 SP1不允许我编辑脚本标记之间的任何代码,例如添加到事件处理程序中的代码,如Application_Start、Session_Start等。但VS确实允许我在脚本标记之外进行编辑。
这只是一个使用内置Web服务器的简单基于文件的Web应用程序。
有什么想法吗?
这是VS创建的code-inline global.asax:
<%@ Application Language="C#" %>

<script runat="server">
    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>
4个回答

6

好的,这是答案:

你可以在这里这里看到部分解释。

基本上,global.asax文件实际上不会被编译,因此VS2008加入了一个修复程序,以防止您修改它,因为您的修改将没有任何效果。


Fab...我在谷歌上搜索“无法编辑global.asax”等内容,但没有任何一篇文章提到这两个问题。 - Kev

1

我觉得VS不允许在Global.asax中使用内联脚本。你需要将代码放在Global.asax.cs中。


0

我曾经只在调试模式下看到过这种情况,但当时并没有意识到。这似乎很基础,但你检查过了吗?


没有任何代码正在运行,这只是一个简单的裸骨项目,包含Default.aspx、Global.asax和web.config文件。我甚至还没有点击播放按钮。 - Kev

0

试过右键点击 -> 查看代码吗?


我正在看着代码。请查看我的问题更新。 - Kev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接