2009-06-08 2 views
1

엔드 포인트의 일환으로 주소를 지정하는 형식은 다음과 같습니다WCF에서 주소의 마지막 부분은 정확히 무엇입니까?

http://localhost:8080/MyWCFService 또는 net.tcp : // localhost를 : 8080/MyWCFService

지침 (책, MSDN 등) 내용의 '/ MyWCFService '는 서비스에 대한'경로 '입니다.

정확히 무엇을 의미합니까?

서비스 구현의 유형 (실제 디렉토리 경로, 가상 루트 경로, 네임 스페이스 등)은 무엇입니까?

실제로 무엇이든간에 CLR/WCF 라이브러리는 어떻게 데이터를 사용하여 작업을 수행합니까? 그 유형이라면 servicehost (serviceHost.Open();)가 관련 객체를 인스턴스화하고 요청 된 메소드를 호출 할 수 있음을 알 수 있습니다.

답변

1

/MyWCFService은 ASP.NET의 가상 디렉터리입니다. 솔루션이나 프로젝트에 /MyWCFService/SomeService.svc과 같은 것이있을 것입니다.

1

예에서 MyWCFService은 실제 주소가 아니며 특정 바인딩에 대해 구성된 EndPoint에 해당합니다.

하나의 ServiceHost는 여러 개의 서비스를 호스팅 할 수 있으며 각 서비스에는 여러 개의 endPoint가 있습니다.

서비스가 IIS에서 호스팅되는 경우 기본 주소는 .svc 파일의 가상 경로가됩니다.

1

주소는 서비스 위치를 알려줍니다. 서비스와의 통신을위한 전송 프로토콜은 물론 서비스 위치를 제공합니다.

'/ MyWCFService'부분이 선택적 특정 경로 인 동안 localhost 부분은 대상 시스템을위한 부분입니다.

1

주소는 서비스가 서비스를 노출하거나 클라이언트가 연결되는 "위치"를 설명하는 문자열입니다. 기본적으로 '물리적'항목에 직접 연결되어 있지 않습니다. 그것은 파일이나 아무것도 참조하지 않습니다.

IIS에서 서비스를 호스팅하는 경우 컴퓨터 및 포트 바로 뒤에있는 주소의 첫 번째 부분은 사실 * .svc 파일이있는 IIS 가상 디렉터리의 이름입니다.

MSMQ의 경우 서비스 주소는 MSMQ 대기열 이름과 일치해야하며 그 반대의 경우도 마찬가지입니다.

그 외의 경우 - 주소는 실제로 특정 서비스를 찾을 수있는 곳을 설명하는 방법입니다.

첫 번째 부분 인 http : //, https : //, net.tcp : // 등은 일반적으로 "스키마"라고하며 클라이언트를 서비스에 연결하는 데 사용되는 전송 프로토콜을 대략적으로 나타냅니다.

두 번째 부분은 일반적으로 컴퓨터 이름이며 선택적으로 포트 번호가 있습니다. 이 부분은 실제 엔티티에 연결됩니다. 물론 머신이 있어야하며, 포트 번호를 사용할 수 있어야하며 사용할 수 있어야합니다.

하지만 세 번째 부분 인 서비스에 대한 "경로"는 실제로 서비스를 호스팅하는 경우 (예 : 콘솔 응용 프로그램 또는 Windows NT 서비스에서) 원하는 모든 것이 될 수 있습니다. .자가 호스팅을 사용하는 경우 경로는 디스크, 가상 디렉터리 또는 기타 다른 물리적 경로와는 전혀 관련이 없습니다.

서비스 호스트 - 실제 .NET 클래스 인 서비스 클래스를 실제로 호스트하고 실행할 코드 조각은 주소, 바인딩 및 계약서가있는 끝점을 노출/게시합니다. 따라서 서비스 호스트는 서비스에 대해 유효한 URI를 정의합니다. 그런 다음 클라이언트는 동일한 주소 - 스키마 (http : //, https : //, net.tcp : //), 시스템 이름 및 선택적으로 포트 및 경로를 지정하여 게시 된 엔드 포인트 중 하나에 연결해야합니다 서비스의

마크

관련 문제