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>
Другие вопросы по тегам