我正在尝试在运行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(使用正确的查询字符串)会出现以下错误:
会话状态在此上下文中不可用。
答案 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