我创建了一个非常简单的ASP.NET HttpHandler,由于某种原因,除非用户登录,否则不会调用它。我已将其指定为处理PNG图像。对于网站的第一次访问者,不会调用处理程序。登录后,它会被调用。我在经典模式下在Windows 7上使用.NET 4,IIS7。请求的PNG图像不存在于文件目录中。
namespace MyNS
{
public class MyHttpHandler : IHttpHandler
{
public bool IsReusable { get { return true; } }
public void ProcessRequest( HttpContext context )
{ }
}
}
在我的web.config中,我有......
<system.webServer>
<handlers>
<add name="MyPNG" path="*.png" verb="*" type="MyNS.MyHttpHandler" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,bitness64" />
</handlers>
</system.webServer>
答案 0 :(得分:1)
首先,如果您在经典模式下使用IIS7,则必须在两个位置设置配置:link。
您还需要从身份验证中排除处理程序:
<location path="myhandler URL">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
好的,这就是我的意思:
<location path="*.png">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>