ASP.NET HttpHandler не вызывается, если нет сеанса - PullRequest
1 голос
/ 25 октября 2011

Я создал очень простой 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 Ответ

1 голос
/ 25 октября 2011

Прежде всего, если вы используете IIS7 в классическом режиме, вы должны настроить конфигурацию в двух местах: ссылка .

Также вам нужно исключить ваш обработчик из аутентификации:

<location path="myhandler URL">
            <system.web>
                    <authorization>
                            <allow users="*"/>
                    </authorization>
            </system.web>
</location>

UPDATE

Хорошо, вот что я имею в виду:

<location path="*.png">
            <system.web>
                    <authorization>
                            <allow users="*"/>
                    </authorization>
            </system.web>
</location>
...