ReportViewer控件无法显示(ASP.NET Ajax 客户端框架未能加载,"Sys"未定义)

简介: 由于换了服务器 所以网站要重新发布。 结果发布到新的服务器上的时候reportviewer却无法显示控件 一开始是用IE游览器游览的 找不都错误所在,以为是reportviewer 的问题 于是在网上搜索发现了很多关于这方面的内容 但是发现出现相关的情况 都是“reportviewer在IIS7无法显示”为主题的。

由于换了服务器 所以网站要重新发布。

结果发布到新的服务器上的时候reportviewer却无法显示控件

一开始是用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 存在不存在”

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

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

 

 

 

目录
相关文章
|
7月前
|
机器学习/深度学习 数据采集 存储
动态渲染页面智能嗅探:机器学习判定AJAX加载触发条件
本文介绍了一种基于机器学习的智能嗅探系统,用于自动判定动态渲染页面中AJAX加载的最佳触发时机。系统由请求分析、机器学习判定、数据采集和文件存储四大模块构成,采用爬虫代理技术实现高效IP切换,并通过模拟真实浏览器访问抓取微博热搜及评论数据。核心代码示例展示了如何调用微博接口获取榜单与评论,并利用预训练模型预测AJAX触发条件,最终将结果以JSON或CSV格式存储。该方案提升了动态页面加载效率,为信息采集与热点传播提供了技术支持。
133 15
动态渲染页面智能嗅探:机器学习判定AJAX加载触发条件
|
开发框架 前端开发 JavaScript
ASP.NET AJAX使用方法概述(三)
ASP.NET AJAX使用方法概述(三)
158 1
|
12月前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
246 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
196 0
|
存储 开发框架 算法
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
211 1
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
221 1
|
存储 开发框架 JSON
ASP.NET Core 标识(Identity)框架系列(二):使用标识(Identity)框架生成 JWT Token
ASP.NET Core 标识(Identity)框架系列(二):使用标识(Identity)框架生成 JWT Token
204 0
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
263 0
|
数据采集 Web App开发 前端开发
技术心得记录:如何用JAVA爬取AJAX加载后的页面(转载)
技术心得记录:如何用JAVA爬取AJAX加载后的页面(转载)
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
608 2