ASP.NET AJAX 1.0 Windows Server 2k8

时间:2011-07-27 22:47:16

标签: asp.net ajax iis .net-2.0 windows-server-2008

我正在尝试在运行IIS 7的Windows Server 2008系统上部署带有AJAX 1.0的.NET 2.0 ASP.NET应用程序。

在我的开发机器上运行完全相同的应用程序,但在发布和部署时,即使没有显示错误消息,它也不会运行AJAX。异步调用只会刷新整个页面(描述here的症状相同,但我的xhtmlConformance标记设置为Transitional)。没有任何错误和消息证明AJAX库已找到并成功添加到项目中。

我已经阅读过关于这个主题的一些帖子,据说在web.config上有一些调整可以使它工作,但是在关注其中一些之后,我没有成功。

我已将this sample web.config file上可用的所有其他标记添加到我正在运行的web.config中。

此应用程序最初并非作为支持AJAX的ASP.NET应用程序创建,而是作为常规ASP.NET应用程序创建的,尽管它在我的开发环境中运行良好。

问题:如何在带有IIS 7的Windows Server 2k8上使用AJAX 1.0运行.NET Framework 2.0 ASP.NET应用程序?


在它之前建议:我确实想将它更新到最新版本的.NET Framework,并且正在进行中,但我不是那个打电话给主题的人喜欢这个..


更新

尝试访问/ScriptResource.axd(使用正确的查询字符串)会出现以下错误:

  

会话状态在此上下文中不可用。

2 个答案:

答案 0 :(得分:1)

事实证明,我在问题更新时添加的问题是导致整个问题的原因。

Ajax试图访问/ScriptResource.axd,它在global.asax上运行了一个访问会话变量的方法,实际上没有会话。

我所要做的就是在Global.asax上使用会话之前检查会话是否可用,如下所示:

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

解决方案在this blog上找到。

答案 1 :(得分:0)

您已在服务器上安装了ASP.NET AJAX 1.0,并且已将System.Web.Extensions添加到您的web.config中?我不确定它与您的应用程序一起部署的效果如何。在我们迁移到ASP.NET 3.5之前,我们曾使用Windows Installer程序包安装ASP.NET AJAX 1.0。

至少你需要:

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

但是微软在这里显示了一个完整的文件:ASP.NET AJAX 1.0 Web.config File Contents