Где находится файл global.asax.cs в Visual Studio 2010? - PullRequest
20 голосов
/ 19 мая 2011

У меня больше нет выделенного кода класса Global Application в моих установленных шаблонах. Все, что у меня есть, это Global.asax. Мне удобнее работать с Global.asax.cs .

  1. Почему я больше этого не вижу?
  2. Как заново создать Global.asax.cs?

Ответы [ 7 ]

31 голосов
/ 19 мая 2011

Это потому, что вы создали веб-сайт вместо веб-приложения.Я бы рекомендовал вам использовать предварительно скомпилированную модель веб-приложения, но если вам нужно использовать веб-сайт, вы можете сделать следующее:

~/Global.asax:

<%@ Application CodeFile="Global.asax.cs" Inherits="AppName.MyApplication" Language="C#" %>

~/Global.asax.cs:

namespace AppName
{
    public partial class MyApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
        }
    }
}

Теперь снова откройте свой сайт в VS.

4 голосов
/ 19 мая 2011

Да @ Ответ Дарина верный, файл cs / vb можно увидеть в веб-приложении, но на веб-сайте у вас не может быть отдельного файла cs / vb.

У Global.asax нет файла cs, но вы можете написать код ....

<script runat="server">

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

</script>
2 голосов
/ 14 декабря 2011

На самом деле на стандартном веб-сайте VS 2010 код файла не предусмотрен для Global.asax.Так что делать?Вы должны использовать модель встроенного кода следующим образом.

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

<%@ Import Namespace="System.Web.Routing" %>

<script Language="C#" RunAt="server">

    void Application_Start(object sender, EventArgs e)
    {
    }

    void Application_End(object sender, EventArgs e)
    {
    }

    void Application_Error(object sender, EventArgs e)
    {
    }

    void Session_Start(object sender, EventArgs e)
    {
    }

    void Session_End(object sender, EventArgs e)
    {
    }
</script>
1 голос
/ 01 июля 2013

Нажмите Ctrl + Shift + A и добавьте глобальный класс приложения из списка

0 голосов
/ 08 марта 2017

Преамбула

Я не мог полностью понять ответ Дарина, поскольку он не придерживается стандартов с именами глобального класса при всем уважении.Мне нужно решение для VS2005, а не 2010, но я уверен, что это решение будет работать, тем не менее.

Добавление файла CodeBehind для Global.asax в asp.net 2.0

Удалите все текущие файлы Global.asax и Global.cs или попытайтесь это исправить.

Хорошо, когда все прошло, перейдите в корневую папку вашего проекта, щелкните правой кнопкой мыши и выберите Добавить новый элемент....

Выберите глобальный класс и нажмите OK

Теперь снова вернитесь в корневую папку, щелкните правой кнопкой мыши и выберите новый класс

Назовите этот класс - Global.cs

И да - разрешить сохранение в папке app_code.НЕ говорите НЕТ и разрешите поместить его в корневую папку.Это должно быть в папке app_code.

Отредактировать файл Global.asax и вырезать (вырезать / вставить) код внутри тега <script>.Файл должен выглядеть следующим образом и добавить тег Inherits ..

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

<script runat="server">
  //do not put any code here
</script>

Перейдите в файл global.cs в app_code и вставьте вырезанный код из файла Global.asax.

Файл global.cs в app_code теперь должен выглядеть следующим образом ...

/// <summary>
/// Summary description for Global
/// </summary>

public class Global : System.Web.HttpApplication

{

       public Global()

       {

              //

              // TODO: Add constructor logic here

              //

       }



    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.



    }

}

Теперь у нас есть файл Global.asax и Code за файлом Global.asax.cs с именем класса.Сделав это, мы можем получить доступ к статической переменной в любом месте веб-сайта.

0 голосов
/ 09 января 2013

Вам не нужно создавать новый класс библиотеки glabal, поскольку при создании нового веб-приложения или веб-сайта само приложение уже имеет элемент с именем global.asax.cs в обозревателе решений.

0 голосов
/ 19 мая 2011

Оба файла одинаковы: «global.asax» относится к веб-сайту, а «global.asax.cs» относится к веб-приложению.Стандарты кодирования одинаковы в обоих из них

...