程序中采用UpdatePanel控件实现了网站的局部刷新功能,本地的环境为AJAX2.0,asp.net2.0,VS2005。本地测试一切正常,但上传之后就出现SYS未定义的错误。
百度、GG一下,上面的解决方案基本全是抄来抄去的,不过是内容多少而已。按照这些抄来抄去的文章,挨个试下去,还是不行,问题依旧。正在几近绝望的时候,突然想起来,前几天做过一次很相似的系统,当时没发现问题,遂做了一个最简单的测试文件。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> <%@ Register Assembly="System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <div> <asp:UpdatePanel ID="UpdatePanelGridDetail" runat="server"> <ContentTemplate> </ContentTemplate> </asp:UpdatePanel> </div> </form> </body> </html>
将上述代码分别上传至两台服务器,发现原来的服务器没有问题,现在的则还是出现SYS未定义。仔细想想这两台服务器的区别,想起来原来的服务器在调试大文件上传的时候,改过服务器的.net版本,当时采用的是.net 4.0集成,再看看现在的服务器环境,发现是.net2.0,虽然本地也是采用的2.0,但感觉问题应该就是个原因。
将服务器的环境由.NET Framework V2.0/V3.0/V3.5(经典)改为.NET Framework V4.0(集成),再测试,问题解决。
顺带说一下,我的网站采用是虚拟主机,环境在虚拟主机的控件面板里设置的。
原文链接:https://www.f2er.com/ajax/163356.html