ASP.NET Ajax 客户端框架未能加载、"Sys"未定义

在Windows Server 2003 系统上部署asp.net项目出现以下问题: IIS为6.0

导致菜单控件的图片显示不出来:

WebSite:程序中的图片显示正常。
但用到ASP.net 2.0 的 asp:TreeView 控件,控件显示不出图片

图片属性:

地址:http://localhost/WebSite/WebResource.axd?d=41VAQHZc9t11gcfcSh8IynBrLxqhiiUYVpPeaSf8-4s1&t=633965754543750000
协议:超文本传输协议
类型:不可用
创建时间:不可用
修改时间:不可用

如下图:

其实这个问题报另一个错:“ASP.NET Ajax 客户端框架未能加载、"Sys"未定义” 解决这个问题图片就显示出来啦 如下:

一开始是用IE游览器游览的 找不都错误所在,以为是reportviewer 的问题

于是在网上搜索发现了很多关于这方面的内容

但是发现出现相关的情况 都是“reportviewer在IIS7无法显示”为主题的。

可是我的IIS是6.0版本的按理说不会出现这种情况。但是还是抱着试一下的想法 按照他们的解决方法试了下。

解决方法如下:

原因是因为IIS7.5读取web.config的方式改变了,不再读取<system.web>的<httpHandlerss>的设置,而是改成了读取<system.webServer>的<handlers>的设置。

<system.web>   <httpHandlers>   <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>   </httpHandlers> </system.web>

在IIS7.5下要改成如下:

<system.webServer>     <handlers>     <add name="ReportViewerWebControl" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>     </handlers> </system.webServer>

设置完成,报表可以正常显示



这边如果有是因为IIS7.0导致无法显示的朋友可以按照上面的方法试一下。

至于我。。当然没有成功了。

因为这边出现的情况是和我出现的一样的。。

所以我就条件反射的也以为是webconfig配置错误。。

结果浪费了一个晚上webconfig 都改烂掉了也没有解决掉。。。

第二天用火狐游览器的firdebug来检测了下

哇哈哈。。结果发现里面提示的是 "ASP.NET Ajax 客户端框架未能加载,"Sys"未定义"

恩开来这就是问题的根源了

于是就开始搜索这类问题的解决方案。。。

解决方案如下:

情况一:未设置编码

在<system.web>节点中加个 <globalization requestEncoding="utf-8" responseEncoding="utf-8"/> 就可以解决。

情况二:发布网站时没有添加引用(用VS2008会出现这样情况)

因为VS2008考虑到安全因素,没有在发布程序前添加System.Web.Extensions    System.Web.Extensions.Design两个DLL,需自己添加.

情况三:WEBConfig配置问题

在web.config的system.web节中添加

<httpHandlers><remove path="*.asmx" verb="*"/><add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/><!--<add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>--><add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/></httpHandlers><httpModules><add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></httpModules>

即可解决。

情况四:IIS配置问题

查看IIS的配置(如果不是本地就得联系空间服务商),在应用程序配置中查找.axd映射,如果没有就新建,映射路径和.aspx一样,注意不要勾选”检查文件是否存在“,确定后测试下效果。如果已存在映射就检查下路径是否正确以及有没有勾选”检查文件是否存在“,问题应该能够解决



基本上出现的都是上面这些情况。。

然后本人就一个个方法的试。。结果。。没有一个成功。。。

为什么没有成功呢?因为如果成功了也就没有下文了

然后本人就开始思考了

首先

老的两个服务器上面配置文件都没改 都是可以用的 然后补丁也都打了 webconfig也都改烂掉了 网上能找到的改webconfig的方法都试过了 然后今天早上就在那想 昨天肯定找错方向了 因为一开始是认为rdlc出错 后来想到是asp.net的ajax客户端出错 错不因该在rdlc 上 因为补丁这些也都打了 然后再把webconfig的问题也排除了 就只剩下 环境的问题了

而跟环境有关的问题的话就只有一个 就是axd的问题但是axd这边确认文件是否存在也已经去掉了所以还是不知道在哪里出错

后来仔细一看发现是这里的问题

在IIS上面的网站属性下面 会有个一个 通配符应用程序映射(执行顺序) 这里不知道为什么多了一个关于ASPNET_ISAPI.DLL的设置。

然后这边的“确认文件是否存在”被打上了勾。

然后去掉。。果然解决了问题

然后又尝试了发布几个新的网站发现在这个服务器上都会自动添加这里一条。同时确认文件是否存在都是打勾的。。而我们内部测试的服务器则没有这一项。

问题很坑爹。。但是终觉是解决了呵呵。。

之后与跟老师探讨了下得出了以下结论:

“简单来讲就是isapi是用来处理axd的 但实际上axd不存在 所以就出错  而他这里的判断  确认文件是否存在就 判断 isapi 处理的axd 存在不存在”

当然这只是探讨出来的结论。至于对错就不知道了

如果有人知道真正的原因也请告诉一下在下谢谢。。。

以上思路来自于:http://www.cnblogs.com/PleaseInputEnglish/archive/2012/10/18/2729877.html 的博客。

时间: 2024-10-19 06:02:31

ASP.NET Ajax 客户端框架未能加载、"Sys"未定义的相关文章

[转]ASP.NET Ajax 客户端框架未能加载。

ASP.NET Ajax 客户端框架未能加载. 在网络上搜索到好几个都是说的什么是utf-8的问题, 我一般建网站的时候 直接就设置 成utf-8拉,但是我的这么也出现 这个问题呢,我重起了机器也不管用. 我想肯定是Web.config的问题,我更换了 新的,把自定和Service设置拷进区 都好了. 可是过了一段时间 又出现问题,到底这么回事的,哦,我修改了config里的<compilation debug="true"> 然后我把它改成false,刷新一下,正常加载,

asp.net ajax客户端框架如何调用Web Service

1:Web Service类添加 [System.Web.Script.Services.ScriptService]特性2:需要异步调用的方法需要添加[WebMethod]特性 3,页面必须添加ScriptManager控件(有且唯一)4: ScriptManager添加对相应的Web Service的ServiceReference5:在客户端使用如下格式调用: [NameSpace].[ClassName].[MethodName](parm1,parm2,...,callbackFunc

asp.net ajax客户端框架如何调用Page Method

1:欲调用的页面方法必须声明为公有(Public)2:该方法必须为静态方法(static)3:该方法必须添加[System.Web.Services.WebMethod];4:ScriptManager的EnablePageMethods="True"5:在客户端使用如下格式调用: PageMethods.[MethodName](parm1,parm2,...,callbackFunction);

iis7+的虚拟目录:未能加载程序集“**”。请确保在访问该页之前已经编译了此程序集

在使用win8系统后,突然想运行iis,于是在windows组件中启用iis,并aspnet_regiis.exe -i注册iis后,于是开始发布了一个站点,一切正常 继而,在该站点下添加虚拟目录,然后预览虚拟目录的网页,就会立刻报类似“未能加载程序集“App_Web_utohcdb4”.请确保在访问该页之前已经编译了此程序集.”的错误 我纳闷了,我记得在以前版本的iis上建立一个虚拟目录是何其的简单并且不会出错,搜索后发现,原来右击网站,有了两个选下个“添加应用程序”和“添加虚拟目录” 继续搜

未能加载 Oracle.ManagedDataAccessDTC.dll 或它的依赖项

第一个项目做完了,交付给测试进行测试,碰到一堆问题,当然不是程序上的,而是环境上的! 这个项目是用 EF 5 + MVC5 + Oracle 11 开发的. 驱动用的是 Oracle.ManagedDataAccess ,本地WIN7/8.1运行一点问题都没有.今天下午打包到 WIN 2008 上,解决了一堆环境问题后,一个大难题出现了: Could not load file or assembly 'Oracle.ManagedDataAccessDTC.dll',什么 PSPManager

AJAX 基本结构 数据加载

AJAX -- 网页数据异步加载 .ashx 一般处理程序   json 数据格式,在不同的语言之间传递数据 对象格式:     "{"key":"value","key":"value"}" 数组格式:     "[{"key":"value"},{},{}]" -- 都是字符串格式 例1.对象格式 <%@ WebHandler Langu

vs2012警告未能加载包“visual c++ package”

vs2012警告未能加载包“visual c++ package” 我也遇到了,我今天早上开机的时候,WIN8有更新,然后我的VS2012就不能使用了.在网上搜索了一个多小时,问题终于得以解决. 下载并按照下面这个更新,会帮助还原VS2012,我这边已经OK,祝你好运!http://www.microsoft.com/en-us/download/details.aspx?id=36020 

使用FMDB框架来加载数据库

1.打开数据库 先要获取沙盒的数据库文件名,并创建数据库文件名,定数据库: @property (nonatomic, strong) FMDatabase *db; // 0.获得沙盒中的数据库文件名 NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"

利用CSS、JavaScript及Ajax实现图片预加载的三大方法

原文:3 Ways to Preload Images with CSS, JavaScript, or Ajax 译文:利用CSS.JavaScript及Ajax实现图片预加载的三大方法 预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验.本文将分享三个不同的预加载技术,来增强网站的性能与可用性.