2009-11-21 3 views
2

콘텐츠가 수정되지 않은 경우 304 응답을 반환하는 ASP.Net MVC의 필터 특성 작업 중입니다. 이것을 달성하기 위해 컨트롤러에 설정된 Last-Modified 헤더 값을 읽을 수 있으면 편리 할 것입니다. 단지 한 가지 문제 만있는 것 같습니다.PlatformNotSupportedException을 가져 오지 않고 응답 헤더에서 읽는 방법이 있습니까?

: 나는
Response.AddHeader("Last-Modified", lastModified); 
string getLastModified = Response.Headers.Get("Last-Modified"); 

나는 또한 다음 시도했다 ... 카시니 [비주얼 스튜디오 2008 데브 웹 서버]에 다음과 같은 코드를 실행할 때 헤더를 읽을 수있는 방법을 찾을 수 없습니다
Response.AddHeader("Last-Modified", lastModified); 
string getLastModified = Response.Headers["Last-Modified"]; 

둘 모두 PlatformNotSupportedException을 반환하고 "이 작업을 수행하려면 IIS 통합 파이프 라인 모드가 필요합니다." SP1

  • IDE - 닷넷 3.5 : 비주얼 스튜디오 2008
  • 웹 서버 : 카시니 [데브]와 IIS6 [생산]
    • 프레임 워크 버전 : 여기

      는 환경에 대한 몇 가지 세부 사항입니다
    아마이 사전에 ...
    감사를 작동시킬 수있는 간단한 방법을 누락

    ,
    Joe

    +0

    죄송합니다. 귀하의 문제에 대한 완전한 대답이 아닐 수도 있습니다. 하지만 여기서 문제는 IIS6에서 Response.Headers 속성이 지원되지 않는다는 것입니다. 통합 모드에서 IIS7을 실행해야합니다. http://msdn.microsoft.com/en-us/library/system.web.httpresponse.headers.aspx –

    답변

    1

    Response.Headers는 Cassini 또는 IIS 6에서 지원되지 않습니다. 이는 Server Variables와 같은 다른 최근 기능에 대해서도 마찬가지입니다.

    솔루션 :

    1. 이 dev에 파일을 가리 키도록 IIS에서 웹 사이트를 구성하고 그에 따라 프로젝트의 시작 URL을 설정하여 IIS 7의 로컬 버전으로 개발 작업을 수행합니다. 필요한 경우 여러 프로젝트에 대해 80 이외의 포트를 사용할 수 있습니다.

    2. IIS 7을 사용하도록 프로덕션 사이트를 전환하십시오 (Windows Server 2008의 경우도 있음). 향상된 성능과 같이 업그레이드해야 할 여러 가지 좋은 이유가 있습니다.

    업그레이드 할 수 없다면 생각할 수있는 유일한 방법은 (C++에서) 헤더를 변경하기 위해 ISAPI 필터를 작성하는 것입니다.

    +0

    아쉽게도 현재 서버를 업그레이드하는 것은 옵션이 아닙니다. 그러나 응답에 감사드립니다! –

    +1

    이 경우, 유일한 대안은 C++에서 ISAPI 필터를 작성하는 것입니다. – RickNZ

    +0

    그건 대답이 아니에요 ... – Nissim

    관련 문제