2009-04-14 2 views
4

6 가지 서비스가 필요한 분산 응용 프로그램을 구축 중입니다. Visual Studio 2008을 사용하여 XP 랩톱에서 응용 프로그램을 데모해야합니다.WCF에서 net.pipe를 통해 여러 서비스 실행

동시에 net.pipe를 사용하여 localhost에서 여러 서비스를 동시에 실행할 수 있습니까? 예를 들어

:

net.pipe://localhost/DirectoryService 
net.pipe://localhost/MathService 

하지 않으면 IIS /이 WebDev 서버를 사용하지 않고 이러한 WCF 서비스를 호스팅 할 수있는 다른 방법이? net.tcp? 다른 것?

답변

8

예, 바인딩 주소를 제공하는 것은 고유합니다. 보여준 두 예제는 net.pipe 바인딩으로 잘 작동합니다.

net.pipe 바인딩은 로컬 시스템에서만 작동합니다. 원격 시스템에서 서비스에 액세스 할 수있게하려면 net.tcp와 같은 다른 바인딩을 사용해야합니다. 즉, 다른 바인딩보다 효율적이기 때문에 서비스가 로컬 호스트에서 실행되는 경우 net.pipe는 이 권장 바인딩 인입니다.

2

IIS가없는 서비스 끝점으로 HTTP를 사용할 수 있습니다. ServiceHost 클래스를 살펴보십시오. 그게 내가 로컬 WCF 테스팅에 사용하는 것과 매우 잘 작동한다.

8

net.pipe 주소에 대해 알아야 할 또 하나의 점은 URL이 아닌 URN을 제공한다는 것입니다. net.pipe는 메모리 내 구현이며 사용자가 지정하는 "주소"는 무엇이든 될 수 있습니다.

net.pipe://IHateCats 
net.pipe://NamedPipes/Are/Fast 

다른 요소와 상관없이 모두 작동합니다. 이 이름은 해당 명명 된 파이프의 고유 식별자 일뿐입니다. 네트워크 스택은이 통신 형식과 관련이 없습니다.