두 개의 서로 다른 호스트 (HTTPS에서는 첫 번째 액세스 가능하고 두 번째 호스트는 HTTP)에서 두 개의 WCF 웹 서비스를 사용하고 싶습니다. 둘 다 동일한 메소드를 제공하지만 첫 번째 메소드는 프로덕션 서버에 있고 두 번째 메소드는 테스트 서버에 있습니다.WCF 4.5 - 여러 웹 서비스
내 Visual Studio 2012 (express)에 참조를 추가 할 때 2 개의 네임 스페이스가 있습니다. 현재로서는 이러한 서비스를 사용하는 유일한 방법은이 네임 스페이스에서 생성 된 인터페이스와 클래스를 사용하는 것입니다. 구성 항목에 따라 하나의 웹 서비스 만 사용하여 디버그 모드인지 릴리스 모드인지 알려줍니다. 코드로 어떻게 할 수 있습니까? 클라이언트를 실행하는 동안 클라이언트와 서비스 사이의 링크가 아마 할 것을 나타냅니다
eMolTest.LotWebContractClient client = new eMolTest.LotWebContractClient();
client.Endpoint.Address = new System.ServiceModel.EndpointAddress("https://xxx/Services/WebService/LotWebService.svc");
client.Endpoint.Binding = new System.ServiceModel.WSHttpBinding(System.ServiceModel.SecurityMode.Transport);
하지만 생성 된 예외 : I 엔드 포인트의 주소를 변경하려고
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ILotWebContract">
<security mode="Transport" />
</binding>
<binding name="BasicHttpBinding_ILotWebContract1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://xxx/Services/WebService/LotWebService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ILotWebContract"
contract="eMol.ILotWebContract" name="BasicHttpBinding_ILotWebContract" />
<endpoint address="http://yyy/Services/WebService/LotWebService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ILotWebContract1"
contract="eMolTest.ILotWebContract" name="BasicHttpBinding_ILotWebContract1" />
</client>
</system.serviceModel>
: 여기
내 설정 파일입니다 대응하지 않습니다. ,eMolTest.LotWebContractClient client = new eMolTest.LotWebContractClient("BasicHttpBinding_ILotWebContract");
그러나 다시 때문에 다른 네임 스페이스의 작동하지 않습니다 (계약의 이름이 네임 스페이스의 이름을 포함합니다 :
나는 또한 내가 프록시의 생성자를 호출 할 때 엔드 포인트의 이름을 표시하기 위해 시도 따라서 구성 파일에 정의 된대로 엔드 포인트에서 찾을 수 없습니다.
그래서, 누군가가 좋은 생각이 있다면 ...
감사합니다! 당신이 동일한 계약이 개 서비스가있는 경우 크리스
Visual Studio에 기본 제공되는 자동 도구를 사용하는 대신 수동으로 프록시를 만드는 것이 가장 좋은 옵션 일 수 있습니다. –
두 개의 서로 다른 위치에 배포하는 서비스가 하나 있어야합니다. 그런 다음 1 개의 서비스 참조 만 필요하고 app.config 파일을 업데이트하여 현재 수행중인 작업에 대한 올바른 정보를 가리킬 수 있습니다. –