ASP.NET AJAX 1.0 Windows Server 2k8 - PullRequest
       23

ASP.NET AJAX 1.0 Windows Server 2k8

1 голос
/ 28 июля 2011

Я пытаюсь развернуть приложение .NET 2.0 ASP.NET с AJAX 1.0 в системе Windows Server 2008 под управлением IIS 7.

То же приложение, которое отлично работает на моем компьютере разработчика, но при публикации и развертывании оно не будет запускать AJAX, даже если не отображаются сообщения об ошибках. Асинхронные вызовы просто обновят всю страницу (тот же симптом описан здесь , но мой тег xhtmlConformance установлен на Transitional). Отсутствие каких-либо ошибок и сообщений доказывает, что библиотека AJAX была найдена и успешно добавлена ​​в проект.

Я прочитал несколько постов на эту тему, и, возможно, в web.config есть некоторые хитрости, которые должны заставить его работать, но после некоторых из них я не добился успеха.

Я добавил каждый дополнительный тег, доступный в этом образце файла web.config , в мой запущенный файл web.config.

Это приложение изначально создавалось не как «приложение ASP.NET с поддержкой AJAX», а как обычное приложение ASP.NET, хотя оно отлично работает в моей среде разработки.

Вопрос: Что я должен сделать для запуска приложения .NET Framework 2.0 ASP.NET с AJAX 1.0 на Windows Server 2k8 с IIS 7?


Прежде чем это будет предложено: я хочу обновить его до новейшей версии .NET Framework, и над этим все еще работаем, но я не тот, кто звонит по таким темам ..


Обновление:

Попытка получить доступ к /ScriptResource.axd (с правильными строками запроса) дает мне следующую ошибку:

Состояние сеанса недоступно в этом контексте.

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Оказывается, проблема, которую я добавил при обновлении вопроса, была причиной всей проблемы.

Ajax попытался получить доступ к /ScriptResource.axd, и он запустил метод global.asax, который обращался к переменной сеанса, когда фактически сеанса не было.

Все, что мне нужно было сделать, это проверить, доступен ли сеанс, прежде чем использовать его в Global.asax, следующим образом:

if (HttpContext.Current.Session!=null)
{
   // my code
}

Решение найдено в этом блоге .

0 голосов
/ 28 июля 2011

Вы установили ASP.NET AJAX 1.0 на сервере, и у вас есть System.Web.Extensions, добавленные в ваш web.config? Я не уверен, насколько хорошо он работает с вашим приложением. Прежде чем перейти на ASP.NET 3.5, мы использовали для установки ASP.NET AJAX 1.0 с помощью пакета установщика Windows.

Как минимум, вам нужно:

<compilation debug="false" defaultLanguage="c#">
  <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Но Microsoft показывает полный файл здесь: Содержимое файла ASP.NET AJAX 1.0 Web.config

...