http 및 net.pipe를 통해 액세스 할 수있는 서비스가 있습니다. IIS 7 (Server 2008)에서 호스팅되고 있습니다. 나는 같은 머신에있는 여러 고객들을 위해이 서비스의 다른 인스턴스를 호스팅 할 수 있습니다. 따라서 HTTP는 가상 호스트 이름 등으로 설정됩니다. 이것은 모두 정상적으로 작동합니다. 그러므로 다른 net.pipe 쓰레기통으로 다른 고객의 인스턴스에 액세스하는 나에게 을 허용, 명명 된 파이프 기본 주소에서 고객의 virtualhostname '의 일부 양식을 사용하여 -IIS에서 WCF net.pipe 바인딩을 호스팅 할 때 명명 된 파이프의 이름을 제어합니다.
은 내가 바인딩 순 명명 된 파이프 유사 할 것이라고 생각 (나는 net.pipe 이름은 URN이 URL이 아니라는 것을 깨닫기 때문에 그들은 본질적으로 임의적 일 수 있지만 나는 HTTP 주소와 비슷한 패턴을 따를 것이라고 생각했다). net.pipe에 대한 기본 주소 IIS에 의해 무시 될 보인다 -
여기
<service name="Administration" behaviorConfiguration="AdministrationBehavior">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="normalWsBinding" contract="IAdministration" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint address="" binding="netNamedPipeBinding" bindingConfiguration="normalNetNamedPipeBinding" contract="IAdministration" />
<endpoint address="mex" binding="mexNamedPipeBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://virtualhostname.com/service" />
<add baseAddress="net.pipe://virtualhostname.com/administration/service" />
</baseAddresses>
</host>
</service>
그러나, 서비스에 대한 WSDL을 액세스하는 내 Web.config를합니다. 대신 컴퓨터의 실제 호스트 이름을 얻고 IIS가 전적으로 포맷 한 것으로 보이는 net.pipe 주소 URN을 얻습니다. net.pipe 이름을 형성하는 방법에 대해 아무런 제어
<wsdl:port name="NetNamedPipeBinding_IAdministration" binding="tns:NetNamedPipeBinding_IAdministration">
<soap12:address location="net.pipe://realhostname/service/Administration.svc"/>
<wsa10:EndpointReference>
<wsa10:Address>net.pipe://realhostname.com/service/Administration.svc</wsa10:Address>
<Identity>
<Spn>host/realhostname.com</Spn>
</Identity>
</wsa10:EndpointReference>
</wsdl:port>
, 나는 기계에 여러 고객 서비스 인스턴스간에 을 구별 할 수 없습니다. 아무도 방법에 관해서 어떤 단서가 있습니까 URN이라는 이름의 파이프 바인딩은 IIS 환경 내에서 제어 될 수 있습니까?
(I는 테스트 기간 동안 호스팅 독립 net.pipe을 많이 할 (즉, 새로운 ServiceHost를()) 그래서 난 내 net.pipe 바인딩은 IIS의 외부에서 작동 않는다는 것을 알고, 정확한 명명 된 파이프를 제어 을 허용 할 이름이 IIS 내에서 제어 할 수없는 경우 URN은
) 사용 - 누군가가 호스팅과 같은 컴퓨터에 여러 개의 별도의 net.pipe 서비스 인스턴스에 액세스 어떤 경험이 있습니까?
net.pipe 바인딩은 "컴퓨터"에서만 작동한다는 것을 알고 있습니다. IIS에서 호스팅되는 경우에도 다른 컴퓨터에서 액세스 할 수 없습니다 .... –
IIS에서 호스팅 할 때 실제로 서비스 주소를 선택하지 않아도됩니다. 항상 http : // machinename [: port ]/virtualdir/yourservice.svc' - net.pipe 주소에도 동일하게 적용됩니다 - IIS에서 호스트되는 경우 이름 지정을 제어 할 수 없습니다 .... –
예, HTTP 끝점은 액세스 오프 머신을위한 것이며, 일부 제한된 (그러나 희망에 따라 더 빠른) 온 머신 접근을 위해 net.pipe 엔드 포인트를 사용하기를 희망했다. IIS에서 HTTP 끝점을 호스팅 할 때 사용하려는 도메인을 지정하기 때문에 일부 수준에서 서비스 주소를 선택하게됩니다. 이 날은 다른 URL 즉 http://customer1.com/admin/Admin.svc 및 http://customer2.com/admin/Admin.svc 내가 할 수있는 경우 '를 통해 여러 IIS 사이트 각 접근을 할 수 있습니다 net.pipe에 대한 내 기본 주소를 선택하지 마십시오. IIS의 다른 고객을 위해 호스팅되는 여러 net.pipe 바인딩을 어떻게 가질 수 있습니까? –