2012-01-10 1 views
0

HttpHandler를의 주소를 검출 HttpHandler를하고 난에 대한 링크를 만들 수 있습니다 A.hdlr 주소로의 web.config에 등록 된 핸들러가있는 경우 질문내가 함께 일한지

이 그 핸들러는 http://www.mysite.com/A.hdlr - brilliant로 갈 것입니다.

그러나 web.config 파일을 업데이트하면이 주소는 더 이상 유효하지 않습니다. 그에 따라 링크를 업데이트 할 수 있도록 현재 구성된 주소를 감지하는 방법이 있습니까 (실제로 구성되어있는 경우)?

편집 추가 :

나는 현재

<add name="MyHandler" verb="GET" path="MyHandler.hdlr" precondition="integratedMode" type="MyType" /> 

그러나 내가 제안을 열려있어 형태로

<system.webServer><handlers> 

섹션에서 핸들러를 구성 - 내 관심사는 점이다 다른 사람이이 구성 주소를 업데이트하면 코드에서 직접 "MyHandler.hdlr"을 참조하면 깨집니다.

+0

웹 구성 파일을 업데이트하면 무엇을 의미합니까? 좀 더 명확해질 수 있을까요? – Anand

+0

처리기에서 구성된 주소를 A.hdlr에서 Foo.hdlr로 업데이트 한 경우 – Liath

+0

내 이해를 정정하십시오. A.ashx에서 처리 할 수있는 * .hdlr 확장자를 등록했지만 이제 일부는 Foo.ashx로 변경되었습니다. 또한 웹 구성에 주소가 구성되어 있지 않습니다. 구성 방법은 아래를 참조하십시오. – Anand

답변

1

웹 구성 파일을 업데이트하면 무엇을 의미합니까? 좀 더 명확해질 수 있을까요?

처리기를 등록하는 유일한 방법은 웹 구성 파일에 이름이나 확장명을 제공하는 것입니다.

<configuration> 
    <system.web> 
    <httpHandlers> 
     <add verb="*" path="A.hdlr" 
     type="HandlerA" /> 
    </httpHandlers> 
    </system.web> 
</configuration> 

자원 A.hdlr이 요청되면 HandlerA.ashx가 처리해야한다고 말합니다.

좋아요, 이제 귀하의 우려를 분명히 이해했습니다. 예, 일부 바디가 Foo.hdlr을 변경하면 Foo.hdlr 리소스가 MyType 핸들러에 의해 제공됩니다. 그러나 왜 누군가가 그것을 할 것이라고 생각하십니까? 그것은 나쁜 논리를 가진 코드를 작성하는 것과 같습니다.

web.config를 수정하는 코드를 작성하여 동적으로 처리기를 등록 할 수 있지만 (App Domain을 다시 시작 함). 그렇다고해서 일부 기관에서 동적 코드를 수정할 수 없다고 보장 할 수는 없습니다. web.config의 항목은주의해서 처리해야합니다.

+0

현재 섹션의 처리기는 형식으로 구성되었습니다. 그러나 제안에 개방적입니다. 내 관심사는 누군가가이 설정 주소를 업데이트하면 코드에서 직접 "MyHandler.hdlr"을 참조하는 것이 중단된다는 것입니다. – Liath

+0

이제 알았습니다. 우려 사항을 분명히 이해했습니다. – Anand

+0

내 응답 참조 – Anand