2012-02-23 106 views
1

我的web.config设置如下。我的处理程序位于名为TestProject.Custom的程序集中。我通过jQuery post调用这个处理程序,在VS 2010中工作得很好(当然!),但是当我将它推送到IIS 7.5或IIS 7时,它会抛出404无法找到TestHandler.ashx。不知道我错过了什么。IIS 7中的ASP.NET自定义HttpHandler 7.5

<system.webServer> 
<validation validateIntegratedModeConfiguration="false" /> 

<handlers> 
    <add name="TestHandler" 
     verb="*" preCondition="integratedMode" 
     path="TestProject.Custom.HttpHandlers.TestHandler.ashx" 
     type="TestProject.Custom.HttpHandlers.TestHandler, TestProject.Custom"/> 

</handlers> 

编辑:我是这个处理器与jQuery和处理程序的背后是窗体身份验证(我不认为是问题):

jQuery(function() { 
    jQuery.ajax({ 
     type: "POST", 
     url: "TestHandler.ashx", 
     data: { "test_data": "some test data" } 
    }); 
}); 
+0

你怎么称呼处理程序? – 2012-02-23 23:06:34

回答

1

我认为“路径”属性应该是“TestHandler.ashx”而不是它的当前值。它必须匹配您在jQuery中使用的URL。否则,预计404。

+0

就是这样。还有一些其他问题导致它无法正常工作。 – codelove 2012-02-25 01:23:26

0

404通常意味着与注册有关的问题,基本上它找不到处理请求的东西。

在添加节点的内部,尝试在末尾添加以下属性:resour ceType =“Unspecified”

这告诉IIS当它看到ashx请求时不寻找物理文件。我认为这是导致404

+0

未指定是默认值,因此您可以放心地忽略该属性,http://www.iis.net/ConfigReference/system.webServer/handlers/add – 2012-02-24 05:37:35

+0

@Lex李:好的呼叫...至少我得到了正确的问题:-) – swannee 2012-02-24 14:04:47