2013-04-08 2 views
0

여러 웹 사이트에서 사용되는 웹 서비스가 있는데 요청이 전달 된 사이트를 알고 (해당 데이터에 따라 다른 결과를 반환하는) 웹 서비스가 필요합니다. 어떻게해야합니까?RESTful 웹 서비스의 요청 URI를 얻는 방법

웹 사이트가 example.com인데 /webservice.svc에 하나의 webservice가 있습니다. 고객이 http://client1.example.com/webservice.svc/hello을 통해이 사이트를 방문하면 "안녕하세요, 고객 1!"이라고 말하고 싶습니다. 그들은 http://client2.example.com/webservice.svc/hello을 통해 올 때 "hello, client2!"라고 말합니다.

그래서 CLIENT1 또는 CLIENT2 subhost (또는 응용 프로그램 디렉토리)

+0

이것은 wcf에 대한 것입니까? –

+0

[WebMethod에서 발신자의 IP 주소를 얻으려면 어떻게합니까?] (http://stackoverflow.com/questions/130328/how-do-i-get-the-callers-ip-address-in-a) -webmethod) – tucaz

+0

예, 여기는 WCF – vampireLady

답변

1

당신은 WCF를 사용하는 가정에 따라, 당신은 시도 할 수 있습니다 : System.ServiceModel.Web.WebOperationContext.Current.IncomingRequest.Headers["Referer"]

결과는 귀하의 예제에서 http://client1.example.com/webservice.svc/hello 또는 http://client2.example.com/webservice.svc/hello 될 것입니다. 그런 다음 client1 또는 client2의 존재 여부에 대해 해당 문자열을 구문 분석 할 수 있습니다.

null을 확인하고 싶을 수 있습니다.

+0

입니다. 다음 예외가 있습니다. ** 객체 참조가 객체의 인스턴스로 설정되지 않았습니다 ** ** – vampireLady

+0

디버그하고 null이 오는 것을보십시오. – publicgk

1

HttpContext.Current.Request.Url.ToString();

"객체 참조가 객체의 인스턴스로 설정되지 않았습니다."원래 시도했지만 해당 설정이 [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]인데도 web.config에서와 마찬가지로 클래스 선언 전에 발생했습니다. 그 트릭과 내가 원하는 변수에 대한 접근을 허용했다.

관련 문제