httphandler uri를“부드럽게”형식화하려면 어떻게해야합니까?
-
02-07-2019 - |
문제
나는 ASP.NET 2.0을 사용하여 C#의 RESTFul 웹 서비스의 방식에 대해 간주하고 있으며 (클래스 라이브러리를 통해, 전자에 의해 생성 된 DLL에 대한 참조와 내 Web.config의 일부 조정)를 통해 관리했습니다. URI 형식과 같은 형식 :
http : // localhost/developmentproject/testhandler/? input = thisismyinput
눈에 띄게 입력을 깨달은 접두사와 함께 텍스트로 반환하는 것은 "당신의 입력은 다음과 같습니다."
나는 URI가 다음의 선을 따라 더 많은 것에 더 많은 일을하게 될 수 있다는 인상을 받았다.
http : // localhost/developmentproject/testhandler/thisismyinput
그리고 같은 결과를 얻지 만 성가신 "? input ="를 제거하는 방법을 모른다.
내 web.config의 httphandlers 섹션에 대한 입력은 (공백이 추가되어 코드 표시) :
<동사 추가 = "*"Path = "TestHandler/*"type = "HandlerLib.testHandler, HandlerLib"/>
로컬 컴퓨터에서 IIS 5.1을 실행중인 경우 문제가 발생합니까?
본질적으로 내가 어디로 잘못 가고 있습니까?
감사.
해결책 3
다른 팁
한 가지 해결책은 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"로 프로세스됩니다.
같은 것을 사용하여 URL 재 작성을 구현할 수 있습니다 urlrewriter.net그것은 당신이 언급 한 구문을 사용할 수있게 해줄 것입니다.
구성 변경 : <add verb = ""path = "testhandler/"type = "handlerlib.testhandler, handlerlib"/> to : <add verb = ""path = "testhandler/*"type = "handlerlib.testhandler, handlerlib "/>
URL과 같은 핸들러의 프로세스 퀘스트 함수에서 request.pathinfo의 값을 확인하십시오. http : // localhost/developmentproject/testhandler/thisismyinput.
그렇지 않은 경우 IIS 5.1이 모든 요청을 ASPNET_ISAPI.DLL로 라우팅하고 있는지 확인하십시오. (이미 그랬지만) 이것은 "구성 ..."버튼> "앱 매핑"탭입니다. IIS의 가상 디렉토리.