ASP.NET HttpHandler не вызывается, если нет сеанса
Я создал очень простой ASP.NET HttpHandler и по какой-то причине он не вызывается, если пользователь не вошел в систему. Мне поручено обрабатывать изображения PNG. При первом посещении сайта обработчик не вызывается. После того, как они войдут в систему, тогда это называется. Я использую.NET 4, IIS7 на Windows 7 в классическом режиме. Запрошенные изображения 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>
1 ответ
Решение
Прежде всего, если вы используете IIS7 в классическом режиме, вы должны настроить конфигурацию в двух местах: ссылка.
Также вам нужно исключить ваш обработчик из аутентификации:
<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>