1

Js를 CompositeScript 요소에 넣을 때 ScriptManager에 의해 생성되는 ScriptResource.axd에 특정 텍스트를 삽입하기 위해 필터를 사용하려고합니다.ScriptResource.axd의 내용을 변경하는 Asp.Net 필터 적용

나는이 작업을 불가능하다고 생각합니다. 처리기와 연결된 경우 ..

:

Asp.Net 용어 번역이 문제는 I가 내장 처리기 (소스 코드없이 System.Web.Handlers.ScriptResourceHandler)의 출력을 필터링하는 것을 시도하고 있음을 의미 요청 필터링을 적용 할 수있는 HttpModules도로드되지 않습니다. 그래서 나는 System.Web.Handlers.ScriptResourceHandler의 "ProcessRequest"를 HttpModule (PostRequestHandlerExecute에서)을 사용하여 이전 이벤트에서 호출하고 PostReleaseRequestState에 필터를 적용하려고 시도했다 ... 이것은 나에게 불가능한 인코딩을 가진 문자열을 준다. convert (아마도 gzip은 이미 사용 되었습니까?).

내가 할 수있는 일이 가능한 것일까 요? 진행 방법에 대한 제안을 해주실 수 있습니까?

자세한 정보 나 소스 코드가 필요한 경우 알려주십시오.

답변

0

결국 압축에 대한 내 가정은 옳았습니다. ScriptResource.axd 파일 내용을 비활성화하여 가져 왔습니다. 실제로 압축을 비활성화 할 수있는 web.config 파일에 대한 구성이 있습니다. 그것은이 섹션에 있습니다

<system.web.extensions> 
    <scripting> 
     <scriptResourceHandler enableCompression="false" enableCaching="true" /> 
    <scripting> 
<system.web.extensions> 

는 지금은 PostReleaseRequestState에서 HttpModule을의 콘텐츠를 얻을 수 그리고 난 내가 지금 어떤 gzip 압축을 할 수있는 것인지 나는 문자열을 대체 한 후. 나는 또한 캐싱을 비활성화해야하는지 확인하기 위해 몇 가지 테스트를 수행 할 것입니다 ...

0

출력이 변경되지 않고 .axd에 추가 출력을 삽입하려는 경우 (출력을 변경하는 대신) 참조하는 페이지에 추가 출력을 포함시켜야합니다. .axd 또는 다른 외부 리소스? 단순히 추가 출력을 추가하는 것만으로 충분하다면 훨씬 더 효율적입니다.

+0

감사합니다. 그러나 내가 뭘하려고하는지 실제로 다른 사람과 특정 문자열을 대체하는 것입니다. 보통 정상적인 Js 페이지의 핸들러에서이 작업을 수행하며 ScriptResource.axd 파일에서도 동일한 작업을 수행하려고했습니다. 불가능한가요? 그렇다면 불가능한 이유는 무엇입니까? – Durden81