我正在尝试编写一个小型Web应用程序,用于将请求转发到我的网页上的新页面。首先我实现了一个IHttpHandler并且在ProcessRequest方法中我很想打印出请求页面,我的conde看起来像这样:
public class RedirectHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write(context.Request.Path);
}
}
我已在web.config中注册并且在测试处理程序时遇到问题。我通过visual studio开始,它只是列出我的文件。然后我从浏览器请求一个文件,并期望在浏览器中看到该名称,但是抛出了找不到页面的异常。我删除了所有其他.aspx页面,所以我唯一的“页面”是我的http处理程序。有人能指出我正确的方向吗?
修改 配置设置(web.config)
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<handlers>
<add name="RedirectHandler" resourceType="Unspecified" verb="*" path="*.html" type="Jeeves.RedirectHandler"/>
</handlers>
</system.webServer>
答案 0 :(得分:0)
system.webServer / handlers 配置元素中的条目仅在运行IIS 7(在集成模式下)时才有效。在项目属性的 Web 部分中指定使用本地IIS Web服务器(如果您有IIS7)或使用系统。改为使用web / httpHandlers 元素:
<system.web>
<httpHandlers>
<add verb="*" path="*.html" type="Jeeves.RedirectHandler"/>
</httpHandlers>
</system.web>