2008-09-26 4 views
1

저는 C#에서 ASP.Net 2.0을 사용하여 RESTful 웹 서비스를 방해하고 있습니다 (클래스 라이브러리를 통해 dll에 대한 참조를 생성하고 이전 web.config의 일부 조정을 통해 관리). 밖으로 URI 형식과 같이 :HttpHandler URI를 "원활하게"포맷하려면 어떻게해야합니까?

HTTP : // localhost를/DevelopmentProject/testhandler/입력 = unremarkably 단지 계몽 접두사 텍스트의 한 부분으로 입력을 반환 thisismyinput

"당신의 입력이었다"

나는 URI가 다음 줄의 내용에 더 많이 감추어 질 수 있다는 인상을 받았다.

에 http : // localhost를/DevelopmentProject/testhandler/thisismyinput

와 같은 결과를 가지고 있지만 아무 생각이 어떻게

의 httphandlers 섹션에 항목을 성가신 제거 "입력 =?"하세요 = "*"경로 = "testhandler/*"유형 = "HandlerLib.testhandler, HandlerLib"

< 동사를 추가 />

내가 실행하고 IIS를 내 Web.config의은 (공백 코드가 표시 그래서 추가)입니다 5.1 로컬 시스템에서 문제가 발생합니까?

본질적으로 어디로 잘못 가고 있습니까?

감사합니다.

+0

나는 그저 추가하지 않고 자연스럽게 이것을 할 수있는 방법이 있었으면 좋겠다고 생각했지만 그 사람은 편리하게 보인다. –

+0

이 문제를 해결하려면 일반적으로 사이트에 구현하는 것이 좋습니다. 그러나 나는 또한 당신에게 더 자연스러운 해결책을 기다리고있다. – WebDude

답변

0

URLRewriter.net 과 같은 URL 재 작성을 구현하면 앞에서 언급 한 구문을 사용할 수 있습니다.

1

한 가지 해결 방법은 UrlRewriting을 사용하여 URL을 필요한 것으로 다시 작성하는 것입니다.

나는 내 모든 재 작성을 할 http://urlrewriter.net/를 사용하여, 당신은이 시나리오에서이 같은 설정 무언가를 남아있을 수

<rewriter> 
    <rewrite 
    url="DevelopmentProject/testhandler/([\w]+)" 
    to="DevelopmentProject/testhandler/?input=$1" /> 
</rewriter> 

에 "http : // localhost를/DevelopmentProject/testhandler/thisismyinput"브라우저 주소 "http : // localhost/DevelopmentProject/testhandler /? input = thisismyinput"으로 처리합니다.

0
가에서 설정을 변경

: <하는 동사를 추가 = ""경로 = "testhandler /"유형 = "HandlerLib.testhandler, HandlerLib"/> 에 : < 추가

+0

나는 누군가가 들어 와서 내 질문을 편집했기 때문에 그것이 틀렸다고 깨달았다. 정말 바보 로군. 나는 그것을 다시 편집하고있다. –

0

처리기의 ProcessRequest 함수 에서 Request.PathInfo 값을 확인하고와 같은 URL로 확인하십시오..

IIS 5.1에서 모든 요청을 aspnet_isapi.dll로 라우팅하고 있는지 확인하십시오. (비록 그것이 이미있는 것처럼 보이지만) 이것은 IIS의 가상 디렉터리에있는 "구성 ..."버튼> "응용 프로그램 매핑"탭입니다.