问题:部署到iis上后Chart图片不显示;结果:使用webchart过程中遇到的一些问题
使用webchart过程中遇到的一些问题
安装条件:
1、操作系统如果是2003的,那么需要到sp2补丁
2、framework需要3.5的,而且需要打sp1补丁先。
4、先执行mschart.exe文件,这个是图表控件的语言包。
3、接着执行MSChartLP_chs.exe,这个是图表控件的安装文件。
5、接着执行mschart_visualstudioaddon.exe,这个是把图表控件作为vs的附加工具。
常见问题:
1、从工具箱拖放图表控件后,但老是认不出这个控件。首先要检查一些你该项目的编译选项,看下是不是使用3.5的选项。
2、执行页面时,提示:Error executing child request for ChartImg.axd。
chart控件的ImageStorageMode有两个选项:UseHttpHandler和UseImageLocation两个选项。这两个
选项都可以,但是,如果是使用UseHttpHandler的话,web.config中图表的相关配置要正确。使用UseImangeLocation
的话,会在文件系统中产生很多的图片文件。
安装正常的话,第一次从工具箱中拖放图表控件到页面时,会自动将该控件相关的配置添加在web.config文件中,包括一下配置:
...
<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:/TempImageFiles/;" />
</appSettings>
<httpHandlers>
...
<add path="ChartImg.axd"
verb="GET,HEAD"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,
System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" validate="false" />
...
</httpHandlers>
<handlers>
...
<add name="ChartImageHandler"
preCondition="integratedMode" verb="GET,HEAD" path="ChartImg.axd"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,
System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" />
...
</handlers>
3、使用handler的方式,配置也跟上面的一样,但是执行时,还是报:Error executing child request for
ChartImg.axd。这时候不妨将httpHandlers中的<add path="ChartImg.axd"
verb="GET,HEAD"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,
System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" validate="false" />
修改为:
<add path="ChartImg.axd" verb="GET,HEAD,POST"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,
System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" validate="false" />
即在verb中多加了POST动作。
4、在开发机时使用handler的方式,一切ok,图形都能够出来,但是一旦部署到iis上,再访问的话,就提示:图表处理程序配置 [c:/TempImageFiles/] 中的临时目录无效。解决办法:
把配置文件中<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:/TempImageFiles/;" />
中的dir属性去掉就ok了。
参考文章:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lastbeachhead/archive/2009/02/16/3896804.aspx
.NET 3.5中MSChart组件的ImageLocation属性含义 收藏
在.NET程序/网站中如果要生成统计图表/图形,以
前可以采用OWC(Office Web
Components),如OfficeXP组件OWC10、Office2003组件OWC11。OWC采用COM-DLL方式的调用接口,但主要缺憾
是生成的图片不够美观,不够“现代”。
现在,随着.NET 3.5的发布,其引入了新的MSChart组件,当然,已经彻底的.NET化了。
一、要使用这个新的图形组件,需要.NET 3.5 SP1环境。
下载安装以下文件,分别是组件安装包、中文语言包、VS插件。
MSChart.exe
MSChartLP_chs.exe
MSChart_VisualStudioAddOn.exe
还有官方的文档,但目前是英文的。
二、言归正传,现在来搞清楚ImageLocation属性的意思。
Chart.ImageLocation
名称空间:System.Web.UI.DataVisualization.Charting
程序集:System.Web.DataVisualization(system.web.datavisualization.dll)
在VS2008中,其默认值为:ChartPic_#SEQ(300,3)
这个好像不太好理解啊:(
好吧,先看几个关联属性吧
1、Chart.RenderType
此属性决定MSChart生成的图形以何种方式送到客户端,有三种:
ImageTag,图形在服务端保存为临时文件,并将临时文件的URL作为HTML中<IMG>标签的SRC属性值。而此临时文件的URL规则及临时文件如何生成可由ImageLocation属性确定。
BinaryStreaming,不在服务端生成图形文件,<IMG>标签的SRC属性值将指向另一个负责生成图形的.aspx页面。
ImageMap,不显示实际的图形,仅创建图片热区(image map)。
默认值是ImageTag,就是会在服务端生成临时文件。
2、Chart.ImageStorageMode
此属性决定生成图形的存储方式,有两个选项:
UseHttpHandler,默认值,由HTTP处理程序存储图形文件到内存或文件。但生成的文件客户端是不能够直接能过URL访问到的,<IMG>标签的SRC属性值形如:
ChartImg.axd?i=chart_67fdbfec448349e686916b97f1351e90_0.png&g=f96eecccd0334d70b8c9b0702894182b
并不指向服务端一个物理存储位置。
UseImageLocation,作为临时文件存储在服务端指定位置。在客户端可以通过URL直接获取到图片。可进一步指定图片存储目录位置。图片文件名可以是随机性的也可以是固定的。
3、Chart.ImageType
生成图形文件的格式,可以是BMG、JPEG、PNG、EMF。
现在回到Chart.ImageLocation,其实在上面已经提到了它的作用,就是决定图形临时文件的URL规则及临时文件如何生成。
(1)、这个属性只有在Chart.ImageStorageMode=UseImageLocation才有效。
(2)、
当Chart.RenderType=ImageTag时,图形文件生成后会在服务端保存。文件格式和扩展名由Chart.ImageType指定。而文
件名则可以是静态不变或动态变化的。静态就是使用一个固定名称,动态则使用一个随机名称,可以通过“#”标记来选择使用GUID或指定数字序列来确定一个
唯一的文件命名。
(3)、默认值ChartPic_#SEQ(300,3)的含义是
(4)、ImageLocation命名举例,假设Chart.ImageType=Png
属性值 生成图形文件URL
----------------------------------------------------------------
ChartPic_#SEQ(300,3) ChartPic_000003.png?d155074d-2120-49db-a95c-6a4a61911315
ChartPic ChartPic.png?27194803-a8a9-4c3e-81a7-5534a279dbe0
ChartPic#NOGUIDPARAM ChartPic.png
(5)、默认值ChartPic_#SEQ(300,3)说明
ChartPic_是前缀,#SEQ是数字序列,300表示最多允许保存300个文件,3代表3秒种,表示向事件日志中写入警告信息的时间限制。
三、web.config关联配置项
只有当Chart.ImageStorageMode=UseHttpHandler时,web.config中的配置才会生效。即指定由HTTP处理程序来存储图形文件时,web.config中的配置才会生效。
例如:
<add
key="ChartImageHandler"
value="storage=file;timeout=20;dir=c:/TempImageFiles/;deleteAfterServicing=false;
webDevServerUseConfigSettings=false" />
显然,其中c:/TempImageFiles/就是HTTP处理程序来存储图形文件的目录。
deleteAfterServicing,在图片被浏览器成功下功下载后,确定服务器上图片是否删除,默认值为false。
但请注意,如果不指定deleteAfterServicing,图片是不会被存储为文件的,应当只是暂存在内存中。
webDevServerUseConfigSettings,当在VS开发服务器中,即运行在完全信任级别(full trust level)环境时,决定生成的图片是否被保存在内存中。
四、注意文件夹的权限
只要在服务端生成图形文件,无论存储在哪个目录下,ASP.NET帐户都需要拥有该目录的写入权限。
参考:
1、MSChart(.NET 3.5)官方文档。
问题:部署到iis上后Chart图片不显示;结果:使用webchart过程中遇到的一些问题的更多相关文章
- 【Android】读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示
尽管以下的app还没有做到快图浏览.ES文件浏览器的水平,遇到大sdcard还是会存在读取过久.内存溢出等问题,可是基本思想是这种. 例如以下图.在sdcard卡上有4张图片, 打开app,则会吧sd ...
- WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法
本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内 ...
- MVC 4.0项目部署在IIS上无法浏览的解决方案
本文属于原创,转载请标明出处! MVC 4.0发布后部署到IIS上可能出现无法浏览的问题,浏览器报403的错误. 解决方法是:只需在web.config配置文件里的<system.webServ ...
- 运行Vue在ASP.NET Core应用程序并部署在IIS上
前言 项目一直用的ASP.NET Core,但是呢我对ASP.NET Core一些原理也还未开始研究,仅限于会用,不过园子中已有大量文章存在,借着有点空余时间,我们来讲讲如何利用ASP.NET Cor ...
- DotNetCore 部署到IIS 上
将 DotNetCore MVC 项目成功部署到 IIS 上,记录下配置要点: 1.在 ASP.NET Core 应用中使用 Kestrel Microsoft.AspNetCore.App 元包中包 ...
- WCF Service部署在IIS上
环境vs2010,WCF应用程序.如何将WCF部署在IIS上. 第一步:右键点击项目,选择生成部署包. 第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署包所在的地方.在这个p ...
- WCF部署在IIS上
WCF部署在IIS上 环境vs2010,WCF应用程序.如何将WCF部署在IIS上. 第一步:右键点击项目,选择生成部署包. 第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署 ...
- 记:ASP.NET Core开发时部署到IIS上出现HTTP Error 502.5 - Process Failure的解决方案
HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to st ...
- 将asp.net core2.0项目部署在IIS上运行
原文:将asp.net core2.0项目部署在IIS上运行 前言: 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...
随机推荐
- Elasticsearch使用记录
Elasticsearch使用记录 Elasticsearch的搭建方法 1.RPM方式搭建 首先去官网[https://www.elastic.co/downloads/elasticsearch# ...
- Lean In - 读书笔记
以下就是摘录了这本书中的相关内容. 他告诉我,想要“赢得每个人的喜欢”这种想法会阻碍我的发展.他说,当你想要让事情有所改变时,你不可能取悦每个人:而如果你去取悦每个人,你就不会获得充分的进步.扎克伯格 ...
- Gateway
网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连.网关的结构也和路由器类似,不同的是互连层.网关既可以用于广域网互连,也可以用于局域网互连. 网关是一种充当转换重 ...
- [原创]java WEB学习笔记01:javaWeb之tomcat的安装和配置
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- python 3 封装
python 3 封装 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小鱼,小虾,小王八,一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装=‘隐藏’,这种理解是相当片面的. 先看如何隐藏 在 ...
- mysql中的内连接,外连接实例详解
内连接: 只连接匹配的行左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边 ...
- 吴恩达机器学习笔记(三) —— Regularization正则化
主要内容: 一.欠拟合和过拟合(over-fitting) 二.解决过拟合的两种方法 三.正则化线性回归 四.正则化logistic回归 五.正则化的原理 一.欠拟合和过拟合(over-fitting ...
- linux 文件存取 软硬联接的区别
一.linux文件存取过程 在linux系统中根目录是自引用的,比如要找 /etc/sysconfig/networkscripts/ifcfg-0文件 先根据根目录/ 的inode号,在inode ...
- Codeforces 900D Unusual Sequences:记忆化搜索
题目链接:http://codeforces.com/problemset/problem/900/D 题意: 给定x,y,问你有多少个数列a满足gcd(a[i]) = x 且 ∑(a[i]) = y ...
- node cluster模块的使用和测试
首先安装async包 用到的有http.cluster包 http和cluster都会node自带的包,无需安装 1:创建cluster.js,代码如下,更具cpu创建多个进程 var cluster ...