项目用到了highcharts.js来绘图,想本地导出,于是在github找到了这个项目ASP.NET Highcharts export module,当然,我说的是很久以前了,还在做MVC3项目的时候,当时一切顺利,把几个dll导入,修改web.config文件以支持自定义的http handler(以HighchartsExport.axd访问),并且立即导出成功。

这一次再次用到了highcharts,同样需要导出,结果却死导不出,总是报404错误,不过就是mvc4+NF4.5而已。上述项目提供了两个web.config的示例文件,我一一测试,均失败,官方要求的是在web.config的system.web节点中注册如下节点:

<httpHandlers><add verb="POST"path="HighchartsExport.axd"type="Tek4.Highcharts.Exporting.HttpHandler, Tek4.Highcharts.Exporting"/>
</httpHandlers>

干脆查了一下文档,注册自定义http handler的方式,果然与该项目作者介绍的不一样,修改后成功,只是同样的iis环境下,老mvc3项目成功,示例的asp.net网站也成功,这就百撕不得骑姐了。

官方文档链接

其并不是给了一个万应良药,只是分三种情况(应该是六种情况,分别对应了独立dll和写到app_code里面两大类,区别就在于app_code里面的类在注册的时候不需要写命名空间,此处不介绍,直接看文档吧):IIS6.0,IIS7.0经典模式,以及IIS7.0集成模式

IIS6下,照着上述代码配置即可。

IIS7的经典模式下,同样需要照着上述代码配置,但是还不够,需要继续在configuration的根节点下配置system.webServer节点:

<system.webServer>
<add name=SampleHandler" verb="*" path="SampleHandler.new" Modules="IsapiModule" scriptProcessor="FrameworkPath\aspnet_isapi.dll"resourceType="File" />
</system.webServer>

其中FrameworkPath有%windir%\Microsoft.NET\Framework64\v4.0.30319和%windir%\Microsoft.NET\Framework32\v4.0.30319两种取值,事实上就是你的Aspnet_isapi.dll所在的文件夹。

而在集成模式下,已经不需要配置上述第一节,直接配置system.webServer即可,而且也不需要蛋疼地定位aspnet_isapi.dll文件了,因为它的resourceType已经不是file了:

<system.webServer>
<handlers><add name="SampleHandler" verb="*" path="SampleHandler.new" type="SampleHandler, SampleHandlerAssembly" resourceType="Unspecified" />
</handlers>
</system.webServer>

我做的是最后这一种更改,成功。

同时顺便做了个小例子,自己在app_code里面写了一个httphandler,输出了几个字,同样用最后这种配置方式(type处不需要写命名空间了,因为是在app_code里面,写全名即可),正常输出。可见这个问题仅仅是该项目作者的示例项目阐述不详细所致,自己找到注册自定义handler的方法即可使用。

顺便送上一句自stackoverflow的话:The <system.web> section applies to IIS6 and below whereas <system.webServer> applies to IIS7 and above.

注册自定义HTTP Handlers相关推荐

  1. 演练:创建和注册自定义 HTTP 模块

    本演练演示自定义 HTTP 模块的基本功能. 对于每个请求,都需要调用 HTTP 模块以响应 BeginRequest 和 EndRequest 事件. 因此,该模块在处理请求之前和之后运行. 如果 ...

  2. 注册表注册自定义协议

    1. 使用注册表编辑器 直接win + R 输入regedit,打开注册表编辑器, 在HKEY_CLASSES_ROOT右键创建新的项(名字自定义) 创建新的字符串值 名称 类型 数据 默认 REG_ ...

  3. 注册自定义URL协议

    用过电驴的朋友都知道电驴有这么一个功能,在网页上点击电驴资源的链接,如果你的机器上安装了电驴,那么电驴就会自动启动,然后下载所选的资源.这些日子做项目的时候Boss刚好提了这么个需求,经一位同事指点, ...

  4. ROS Navigation插件注册自定义导航避障算法

    前言 最近开组会的时候,导师催促我寻找创新点,着实让我头疼.因为说实话,我真的不想找什么创新点,我只想学习一些招聘简历上的技能类的东西,比如熟悉A*.Dijkstra和DWA导航避障算法,熟悉ROS, ...

  5. Kubernetes API Aggregation在 Master 的 API Server 中启用 API 聚合功能注册自定义 APIService 资源实现和部署自定义的 API Serv

    如需转载请标注内容地址为: https://wiki.shileizcc.com/confluence/display/KUB/Kube Kubernetes API Extension Kubern ...

  6. 泛微OA 注册自定义接口格式

    package weaver.interfaces.workflow.action.javacode;import weaver.interfaces.workflow.action.Action; ...

  7. Windows注册自定义URL协议

    原理: 在注册表HKEY_CLASSES_ROOT项下加入对应的子项,内容如下: Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\test ...

  8. vpi_register_cb 注册自定义的回调函数

    1.vpi_register_cb函数接口: vpiHandle vpi_register_cb(p_cb_data cb_data_p); 其中,p_cb_data结构定义如下: typedef s ...

  9. vue全局注册自定义图片属性

    在一个项目中,可能有很多的图片加载失败,就需要将图片设计成一个组件 ,在main.js里面设计 这个是在main.js里面全局设计的 自定义事件 el是绑定的标签 onerror是这个自定义绑定事件的 ...

最新文章

  1. mysql8.0.12最小化安装_简述MySql8.0编译安装过程
  2. 项目启动 ora-00942:_如何解决大型软件项目开发难题?唯快不破!
  3. 【洛谷 P2303】 [SDOi2012]Longge的问题 (欧拉函数)
  4. 怎么写计算机教学论文,如何写好一篇关于信息技术教育的论文
  5. [转]“UPA 中国”北京行业聚会笔录
  6. 手机号正则表达 php,php 手机号码正则表达试程序代码_PHP教程
  7. LeetCode 670 最大交换 (暴力+贪心、Python)
  8. java lambda 排序_Java8特性:Lambda表达式之概念篇
  9. Qt5.7+Opencv2.4.9人脸识别(四)模型训练
  10. 终于有人把卷积神经网络(CNN)讲明白了
  11. java pattern堆栈溢出_我的正则表达式导致Java中的堆栈溢出;我错过了什么?
  12. python 批量修改文件名
  13. 最全LinuxC语言系统开发资源视频资源
  14. [cocos2d-x]动作+场景切换
  15. 微信号php756,微信机器人开发者常说的“提62”是什么?微信62数据是什么意思?...
  16. 30款各大论坛的XP
  17. 哪些用户需要代码签名证书
  18. fiddler重放请求
  19. mysql服务启动、停止、重启
  20. 正版微软Office应该如何选?Office 2019与Office 365区别在哪里?

热门文章

  1. Tomcat 设置运行日志
  2. ORA-02287: sequence number not allowed here
  3. 后置处理器----JSON提取器
  4. h5新增 history的应用
  5. jsp中${}解析不了
  6. java 基础知识总结
  7. UVAlive 7041 The Problem to Slow Down You(回文树)
  8. [转载]acm进阶之路
  9. [TypeScript] Deeply mark all the properties of a type as read-only in TypeScript
  10. 【spring源码分析】IOC容器初始化(二)