2011-10-25 1 views
1

매우 간단한 ASP.NET HttpHandler를 만들었고 어떤 이유로 사용자가 로그온하지 않으면 호출되지 않습니다. PNG 이미지를 처리하도록 지정했습니다. 웹 사이트를 처음 방문하는 경우 처리기가 호출되지 않습니다. 로그온 한 후 호출됩니다. Classic 모드에서 Windows 7에서 .NET 4, IIS 7을 사용하고 있습니다. 요청한 PNG 이미지가 파일 디렉토리에 없습니다. 내 Web.config의에서ASP.NET HttpHandler는 세션이 없으면 호출되지 않습니다.

namespace MyNS 
{ 
    public class MyHttpHandler : IHttpHandler 
    { 
     public bool IsReusable { get { return true; } } 
     public void ProcessRequest(HttpContext context) 
     { } 
    } 
} 

, 나는이 ... 모든

<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

당신은 확실히 같은 경로를 하드 코딩 할 필요가 없습니다 :

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

UPDATE

OK, 여기 내 말은 무엇인가 이 web.config : C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll –

+0

web.config의 보안 설정은 무엇입니까? –

+0

@Davide, 어떤 경로를 사용합니까? – Ron

답변

1

먼저 클래식 모드에 IIS7을 사용하는 경우, 반드시이 곳에서 설정 설정 : link은.

는 또한 인증에서 핸들러를 제외해야합니다

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

여기에 뭔가있을 수 있지만 IHttpHandler에 대한 URL이 없습니다. – Ron

+0

예 있습니다. 그것은 경로 =>'path = "*. png"' – Aliostad

+0

고마워,이게 해결 됐어.하지만 나는 아직도 약간 혼란스러워. 실제 이미지를 경로에 배치하면 위치 설정없이 일반 http 요청을 통해 표시됩니다. 그러나 이미지 파일이 없으면 HTTP 처리기를 호출하기위한 위치가 필요합니다. 이제 가능한 모든 이미지 경로에 대한 위치 설정을 설정해야합니다. 반면, 거기에 실제 이미지 파일이 있으면 인증없이 잘 작동합니다. 이상한. – Ron