WCF 끝점,baseAddressPrefixFilters host 헤더
문제
나는 두 개의 웹사이트에 같은 기계입니다.첫(클라이언트)참조 WCF 서비스에서 두 번째 사이트(서버).
를 설정하는 방법은 무엇입니까 주소에 대한 서비스를 참조하나요?에서 이동할 때 발전에는 로컬 컴퓨터 그룹 development server,나는 어떻게 변화의 url 을 서비스하는가?이 사이트는 차별화 된 host 헤더,다음과 같 http://dev.admin/...고 http://dev.public/...
나는 이를 사용하여 처리할 수 있습 여러 끝점,그러나 나는 아주 새로운 WCF 및 정말 단서가 없어 내가 무엇하고 있습니다.
해결책
후에는 많은 좌절,나는 관리 결정하는 웹.config 파일(클라이언트와 서버에서,모두에서 웹 앱을 이 경우),다음과 같은 섹션이 변경 될 수 있:
클라이언트:
<client>
<endpoint
address="http://mysite.com:port/services/someservice.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ISomeService"
contract="MyServices.ISomeService"
name="BasicHttpBinding_ISomeService" />
</client>
</system.serviceModel>
서버
<system.serviceModel>
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix="http://mysite.com:port/services"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<behaviors>
<serviceBehaviors>
<behavior name="MyServices.SomeServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyServices.SomeServiceBehavior"
name="MyServices.SomeService">
<endpoint address="http://mysite.com:port/services/someservice.svc"
name="endpoint.SomeService"
binding="basicHttpBinding"
bindingConfiguration=""
contract="MyServices.ISomeService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
가이드는 호스트 주소에서 모든 세 개의 관련 부분(클라이언트 주소,서버 baseAddressPrefixFilter 값이며,서버 종점 주소)이 일치합니다.
할 수 있어요 스위치 서버 사이에 수정하여 이러한 만큼 그들이 일치합니다.나는 아직도 선호하는 방법 설정에 따라 어떤 컴퓨터 서버에서 실행되지만,이 작품에 대한 순간입니다.
WCF 노출 뜨거운 무엇:지속적인 개체입니다.클라이언트 프록시체(만든을 추가할 경우 서비스의 참조)지속적인 연결을 유지하는 서비스 서버에 있습니다.이 서비스를 인스턴스를 참조하는 클라이언트가 프록시 해당 상태를 유지해 사내 통화할 수 있는,단순화하는 방법에 서명하고 클라이언트 프록시는 개체의 서비스는 전체적으로 훨씬 더 유용한 특정 응용 프로그램.개체 매개변수 유형을 공유할 수 있는 클라이언트와 서버 사이에 만약 그들이 선언에서 일반적 라이브러리,의미 없다는 것을 만드는 두 개의 매우 유사한 클래스 또는 래퍼 클래스는 전달하는 기본이 아닌 데이터 구조 등이 있습니다.
무엇을 하지 않습니다:구성은,가난하게 문서화되고,너무 참여합니다.작동이 점점 시험에서는/dev/준비/생산 환경 구성 서비스 neesd 의해야 하는 위치로 끌어들였습니다.저는 확신하지 않을 만드는 서비스의 도메인 url(이 아니라 상대 경로를 무엇이든 그것을 실행에)어떤 상당한 혜택,보안 문제를 둡니다.
는 말했다,나는 계속해서 내려가 WCF 경로로 이점에 따라서 훨씬 능가 두통.
다른 팁
가장 쉬운 방법:실행 WCF 부분에서 다른 항구가 있습니다.