我使用.NET创建REST服务,并使用通用处理程序Default.ashx处理传入请求。这允许我使用诸如“http:// rest/test”之类的方法访问服务而没有问题。但是,当添加文件扩展名时,IIS不再重定向请求,而是查找文件。 web.config如何修改,以便像http://foo/test.xml和http://foo/test.json这样的URL请求也由DefaultHandler.ashx处理?我之前做过这件事,所以知道它可能但不记得配置。使用默认处理程序与.NET进行REST
2
A
回答
1
你可以在我的HttpClone应用程序的web.config中看到这个例子。它的主要内容包括对您不希望这样的扩展删除处理程序:
<system.webServer>
...
<handlers accessPolicy="Read, Script">
<clear />
<add name="Favorite-Icon" path="/favicon.ico" verb="GET,HEAD" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
<add name="HttpClone" path="*" verb="GET,HEAD,POST,DEBUG" type="Namespace.MyCustomHandler, AssemblyName" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
</handlers>
这是说使用自定义的处理程序进行,除了“/favicon.ico”所有的URI的所有请求。如果您仍然需要使用'Default.ashx',那么您需要获取ashx类型的处理函数,并将其映射为像这样处理所有路径。通常,虽然不需要ashx扩展处理程序,但只需在任何程序集中实现IHttpHandler并在上面的'type'属性中引用它。
请注意,cassini web服务器(VStudio中的测试服务器)不会将缺省目录'/'映射到您的处理程序。为了解决这个卡西尼问题,你需要一个default.aspx文件来存在(虽然它可以是空的)。
注2 - 上述配置仅适用于集成模式,对于经典模式,概念相同,但设置位于不同位置。
相关问题
- 1. 默认的.NET异常处理程序
- 2. 执行默认信号处理程序
- 3. 调用UINavigationController的默认处理程序
- 4. .NET MVC - JavaScript的默认.onError处理程序?
- 5. firefox不触发默认处理程序
- 6. 默认处理程序在设计
- 7. 如何替换默认处理程序
- 8. xmlrpc apache - 如何默认处理程序
- 9. rails使用MetaSearch进行默认排序
- 10. 如何从事件处理程序中调用默认处理程序
- 11. 在默认行为后执行的Javascript事件处理程序
- 12. 与SubSonic的REST处理程序联合
- 13. 使用GetEventMonitorTarget()时抑制默认事件处理程序
- 14. 如何使用shell的默认处理程序打开文件?
- 15. 集的mailto默认处理程序使用javascript
- 16. 骡子总是使用默认的异常处理程序
- 17. 如何使用DJNativeSwing配置默认URL/HTTP处理程序
- 18. .net Listbox不会用JavaScript事件处理程序进行编译?
- 19. Angular:自定义事件处理程序和默认处理程序的顺序
- 20. Visual Studio与#Develop - 默认事件处理程序
- 21. 对WPF应用程序使用winforms默认异常处理程序
- 22. 执行32位和64位mshta.exe(绕过默认处理程序)
- 23. .NET远程处理与SOA
- 24. 用C#.NET进行字符串处理
- 25. 使用批处理程序进行地理编码
- 26. .Net Remoting不使用.Net远程处理?
- 27. 取消订阅事件处理程序C#,使用默认处理程序代替
- 28. 使用承诺进行顺序处理
- 29. 使用C#.net程序进行登录
- 30. 正在处理 - 更改默认应用程序图标
什么版本的IIS? – SLaks 2011-12-19 21:47:03
Windows 2008 R2上的IIS 7 – user1106748 2011-12-19 21:56:34