Global.asax не загружается для предварительно скомпилированного сайта asp.net

Я использовал Visual Studio 2008 для публикации своего сайта asp.net. Когда я открывал веб-сайт на сервере (сервер Windows 2008), я заметил, что код в global.asax не работает. Мое тело Global.asax похоже на:

<%@ Application Language="C#" %>
<script runat="server">
    protected void Application_Start()
    {
        // Initialize some site settings like a task scheduler
    }

    protected void Application_End(object sender, EventArgs e)
    {
        // Perform some clean up code
    }
</script>

В папке bin скомпилированных веб-сайтов есть файл App_global.asax.dll, но это, похоже, не помогает.

Есть ли опция конфигурации, которую я пропускаю? Удаление App_global.asax.dll и использование оригинального global.asax с предварительно скомпилированным сайтом работает нормально.

6 ответов

Решение

Единственный ответ, который я нашел, - включить global.asax (с логикой) в скомпилированную папку вывода.

У меня была похожая проблема, и мне удалось ее устранить, удалив файл PrecompiledApp.config из корневой папки веб-сайта на нашем сервере разработки.

Я думаю, что это может быть передано на сервер при публикации из Visual Studio.

У меня была похожая проблема после публикации предварительно скомпилированного проекта ASP.NET под.NET 4 и IIS 7.0. Глобальное приложение не запускалось при запуске приложения, затем после размещения PrecompiledApp.config на сервере моя проблема была решена и скомпилированный файл Global.asax с именем App_global.asax.dll вышел на первый план жизненного цикла и работает.

Убедитесь, что в ваш проект включены все необходимые библиотеки dll, это также хорошая идея, чтобы скомпилировать ваши проекты, сравнить версии dll, а если они не совпадают, вручную заменить их в каждой папке, чтобы вы могли быть уверены, что работают правильную версию Dlls.

Это сработало для меня.

В этом посте есть некоторые решения, которые решают проблему для некоторых людей, но не для всех. Вы можете попробовать их и посмотреть, работает ли это для вас.

Я думаю, что переименование Application_Start() в Application_OnStart() решит проблему.

Другие вопросы по тегам