解决asp.net ajax sys未定义的解决方法
程序员文章站
2024-03-07 16:42:18
出现这种错误,一般是缺少2个文件,放到项目或者服务器根目录下 新建记事本,随便打上几个字母,分别保存为以下2个文件,上传即可解决 webresource.axd , scr...
出现这种错误,一般是缺少2个文件,放到项目或者服务器根目录下
新建记事本,随便打上几个字母,分别保存为以下2个文件,上传即可解决
webresource.axd , scriptresource.axd
或参考如下方法:每个人碰到的原因可能不一样。
首先,我们看一下网上出问题的同志们虽说都是"sys 未定义",但是情况却不尽相同,有的人使用的是atlas版本,有的使用的asp.net ajax beta,有的则是正式发行版asp.net ajax beta,所以解决的方法也有区别了。下面简单归纳一下现有的几种方法:
1、web.config配置问题:
将web.config中的相关节配置成如下,然后重新编译你的程序:
<httphandlers>
<remove path='"*.asmx"/' verb='"*"'>
<add path='"*.asmx"' verb='"*"' publickeytoken='31bf3856ad364e35"/' culture="neutral," version="1.0.61025.0," microsoft.web.extensions, type='"microsoft.web.script.services.scripthandlerfactory,' validate='"false"'>
<add path='"scriptresource.axd"' verb='"get"' type='"microsoft.web.handlers.scriptresourcehandler"' validate='"false"/'>
</httphandlers>
<compilation debug='"true"'>
<assemblies>
<add publickeytoken='31bf3856ad364e35"/' culture="neutral," version="1.0.61025.0," assembly='"microsoft.web.extensions,'>
</assemblies>
</compilation>
如果还有错误,试着把<asp:scriptmanager id="scriptmanager1" runat="server" asyncpostbacktimeout="200" />写在紧随<form>标记内
2、权限问题:
匿名用户无法访问 axd文件时,就会造成此类错误,关于这个的讨论大家可以看看 《asp.net ajax 中的脚本错误: sys未定义 的解决方法》,在这里作者有详细的讨论
3、iis的问题,由于iis版本问题也可能导致此类错误,比如你用的服务器操作系统是2000 server等等,你需要把它们升级到最新版本,这主要是针对iis的升级。win2003用户可以从下面这个地址下载到相关的补丁http://download.microsoft.com/download/7/b/1/7b1f473c-547d-4196-b00d-bf3aa2a3e898/windowsserver2003-kb912812-x86-chs.exe (建议你安装sp2并实时更新升级)
相关讨论大家还可以看一下这儿的讨论:博客园——http://www.cnblogs.com/ltc31/archive/2006/09/20/510003.html
4、类库问题:
如果真是这儿的问题应该解决起来就比较简单了,你只需要安照下面的步骤做即可
到http://ajax.asp.net/downloads/beta/default.aspx?tabid=47&subtabid=471 下载一个库文件然后解压到x:\program files\microsoft asp.net\asp.net 2.0 ajax extensions\v1.0.61025 (x代表你安装路径盘符)
即可
5、有人提到用ip访问就会有问题,用localhost或者域名就正常,这儿我估计是缓存的问题,可以更新一下缓存看看是不是能够解决
6、另外就杀毒软件的问题了,如果你的杀毒软件比较敏感的话也可能会杀掉了某些js程序导致此类问题的产生
7、当然了,你首先得检查一下你的浏览器没有禁止javascript脚本才行(这个应该最早确认)
8、我自己解决办法:我在试了上面几种方法之后都没有很好地解决,于是我就把所有的asp.net ajax的东东全部删除,包括toolkits,然后再从asp.net上重新下载最新版本的ajax安装之,发现问题简简单单地解决了。安装成功后,在vs的工具箱里分别多了ajax extions和ajax toolkits两个选项卡,之后我安装后是没有的…… 大家不妨也试一下,按理说成功安装完成之后就可以正常使用的
9、程序本身的问题:如果你在程序中有自己的javascript代码的话,你需要仔细检查一下客户端执行后的代码情况,看看是不是某些变量在未定义前就使用了,特别要注意加载的顺序,总之这也是一个造成sys 类型未定义的一个原因
新建记事本,随便打上几个字母,分别保存为以下2个文件,上传即可解决
webresource.axd , scriptresource.axd
或参考如下方法:每个人碰到的原因可能不一样。
首先,我们看一下网上出问题的同志们虽说都是"sys 未定义",但是情况却不尽相同,有的人使用的是atlas版本,有的使用的asp.net ajax beta,有的则是正式发行版asp.net ajax beta,所以解决的方法也有区别了。下面简单归纳一下现有的几种方法:
1、web.config配置问题:
将web.config中的相关节配置成如下,然后重新编译你的程序:
复制代码 代码如下:
<httphandlers>
<remove path='"*.asmx"/' verb='"*"'>
<add path='"*.asmx"' verb='"*"' publickeytoken='31bf3856ad364e35"/' culture="neutral," version="1.0.61025.0," microsoft.web.extensions, type='"microsoft.web.script.services.scripthandlerfactory,' validate='"false"'>
<add path='"scriptresource.axd"' verb='"get"' type='"microsoft.web.handlers.scriptresourcehandler"' validate='"false"/'>
</httphandlers>
<compilation debug='"true"'>
<assemblies>
<add publickeytoken='31bf3856ad364e35"/' culture="neutral," version="1.0.61025.0," assembly='"microsoft.web.extensions,'>
</assemblies>
</compilation>
如果还有错误,试着把<asp:scriptmanager id="scriptmanager1" runat="server" asyncpostbacktimeout="200" />写在紧随<form>标记内
2、权限问题:
匿名用户无法访问 axd文件时,就会造成此类错误,关于这个的讨论大家可以看看 《asp.net ajax 中的脚本错误: sys未定义 的解决方法》,在这里作者有详细的讨论
3、iis的问题,由于iis版本问题也可能导致此类错误,比如你用的服务器操作系统是2000 server等等,你需要把它们升级到最新版本,这主要是针对iis的升级。win2003用户可以从下面这个地址下载到相关的补丁http://download.microsoft.com/download/7/b/1/7b1f473c-547d-4196-b00d-bf3aa2a3e898/windowsserver2003-kb912812-x86-chs.exe (建议你安装sp2并实时更新升级)
相关讨论大家还可以看一下这儿的讨论:博客园——http://www.cnblogs.com/ltc31/archive/2006/09/20/510003.html
4、类库问题:
如果真是这儿的问题应该解决起来就比较简单了,你只需要安照下面的步骤做即可
到http://ajax.asp.net/downloads/beta/default.aspx?tabid=47&subtabid=471 下载一个库文件然后解压到x:\program files\microsoft asp.net\asp.net 2.0 ajax extensions\v1.0.61025 (x代表你安装路径盘符)
即可
5、有人提到用ip访问就会有问题,用localhost或者域名就正常,这儿我估计是缓存的问题,可以更新一下缓存看看是不是能够解决
6、另外就杀毒软件的问题了,如果你的杀毒软件比较敏感的话也可能会杀掉了某些js程序导致此类问题的产生
7、当然了,你首先得检查一下你的浏览器没有禁止javascript脚本才行(这个应该最早确认)
8、我自己解决办法:我在试了上面几种方法之后都没有很好地解决,于是我就把所有的asp.net ajax的东东全部删除,包括toolkits,然后再从asp.net上重新下载最新版本的ajax安装之,发现问题简简单单地解决了。安装成功后,在vs的工具箱里分别多了ajax extions和ajax toolkits两个选项卡,之后我安装后是没有的…… 大家不妨也试一下,按理说成功安装完成之后就可以正常使用的
9、程序本身的问题:如果你在程序中有自己的javascript代码的话,你需要仔细检查一下客户端执行后的代码情况,看看是不是某些变量在未定义前就使用了,特别要注意加载的顺序,总之这也是一个造成sys 类型未定义的一个原因
推荐阅读
-
asp.net通过Ajax UpdatePanel回传后滚动条位置变更解决方法
-
asp.net 数据绑定 使用eval 时候报 字符文本中的字符太多 问题的解决方法
-
asp.net下无法循环绑定投票的标题和选项的解决方法
-
先装了FRAMEWORK,后装IIS导致asp.net页面无法访问的解决方法
-
ASP.NET获取不到JS设置cookies的解决方法
-
asp.net session丢失的解决方法小结
-
asp.net运行提示未将对象引用设置到对象的实例错误解决方法
-
ASP.NET在IIS7中上下文中不可用的解决方法
-
ASP.NET中Request.Form中文乱码的解决方法
-
关于有些Asp.net项目发布后出现网址乱码的解决方法