Asp.net HTTP处理程序使用Cassini工作,但不使用IIS 6

Asp.net HTTP处理程序使用Cassini工作,但不使用IIS 6,asp.net,iis-6,httphandler,Asp.net,Iis 6,Httphandler,我创建了一个示例项目来简化我的问题。我有一个简单的处理器: public class HandleThis : IHttpHandler, IRequiresSessionState { public void ProcessRequest( System.Web.HttpContext context ) { // Score.aspx just says "success" context.Response.Redirect( "Score.

我创建了一个示例项目来简化我的问题。我有一个简单的处理器:

public class HandleThis : IHttpHandler, IRequiresSessionState
{

    public void ProcessRequest( System.Web.HttpContext context )
    {
        // Score.aspx just says "success"
        context.Response.Redirect( "Score.aspx" );
    }

    public bool IsReusable { get { return true; } }
}
然后,在我的配置中,我有:

<httpHandlers>
<add verb="*"
path="Survey"
type="HttpHandlerTest.HandleThis, HttpHandlerTest" />

我的管理员开火了

如果我将项目更改为使用IIS 6运行,它将不会启动(404)。 我尝试通过以下方式在IIS中手动添加处理程序: -网站属性 -主目录 -配置 -添加(浏览到我的网站的.dll),扩展名:Survey,取消选中“验证文件是否存在”

我注意到IIS(非常有用)在我的分机前面添加了“.”,所以我用“b.Survey”点击了该站点;仍然是404


当然,在Cassini中的IIS 6?

中添加一个处理程序是可能的,所有内容都通过您的开发服务器,即使您尝试在集成模式下使用服务器中的编程会引发异常

在IIS7中,如果在集成模式下运行应用程序,它将起作用

在IIS6中,您必须将path=“*”分配给ASPNET_ISAPI.dll,然后在web.config中使用与上述相同的引用代码,或者必须在路径中为处理程序分配扩展名

如果您在IIS6中添加aspnet isapi时遇到问题,请在谷歌上搜索“无扩展IIS6”或类似的内容以获得分步教程。

“我尝试通过以下方式在IIS中手动添加处理程序:-网站属性-主目录-配置-添加(浏览到我网站的.dll),扩展名:Survey,取消选中验证文件是否存在”

听起来您使用了错误的“可执行”路径。可执行路径应指向aspnet isapi dll,而不是包含HttpHandler实现的dll


尝试使用.aspx扩展映射到的相同路径(通常是:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet\u isapi.dll)。

我想我让人觉得我想要一个无扩展url的处理程序;我不。我只想让我的教练开枪。如果我在IIS的mappings/Application extensions对话框中键入“wtf”作为扩展名,并尝试点击“a.wtf”,它仍然不会启动。是的,好吧,我暗示的是web.config和asp.net isapi需要匹配,而您当前的解决方案没有这样做。不管怎么说,似乎其他人对你说得更好。当我这样做时,我得到的回答完全是空的。我认为你实际上没有被重定向到Score.aspx?您是否使用IIS中的通配符(*)映射导航到URL?我刚刚意识到我的问题;在我将可执行路径更改为指向aspnet之后,我需要更正配置中的内容(我在IIS中将扩展名更改为“.wtf”,因此我需要将配置更改为path=“*.wtf”