2012-01-20 2 views
0

주 응용 프로그램에서 참조하는 표준 클래스 라이브러리 인프라 어셈블리가 있습니다. 인프라 어셈블리는 내부적으로 웹 서비스를 사용하고 기본 응용 프로그램에 기능을 제공합니다.서비스 참조 구성

작동 시키려면 webservice에 내 기본 응용 프로그램에 참조를 추가해야합니다. 그렇지 않으면 Endpoint.exeption을 얻습니다. 내가 그것을 추가하면 모든 것이 잘 작동한다. 인프라 dll은 기본 응용 프로그램 인 app.config에서 정보를 읽으므로 항목이 있어야합니다. 하지만 그것은 주 응용 프로그램이 webservie를 직접 호출하지 않기 때문에 외부 dll을 통해 웹 서비스를 노출 할 수 없다는 것이 이상하게 보입니다. 웹 서비스가 주 응용 프로그램 보안 모드를 무시하고 외부 dll의 app.config에서 읽는 것이 낯설기도합니다.

내 가정에서 올바른 경우 어떻게 webservice에 대해 알고있는 주 앱이없는 외부 DLL에 웹 서비스를 노출시킬 수 있습니까?

답변

1

서비스 참조를 추가 할 때 클래스 라이브러리 프로젝트에서 생성 된 프록시가 내부인지 확인해야합니다. 추가 정보를

는 :

C#, WCF, Hide web service through dll

이 클라이언트에 WCF 인터페이스를 숨 깁니다.

클래스 라이브러리 프로젝트를 사용하는 클라이언트가 app/web.config에 WCF 구성 키를 추가해야하는 경우 라이브러리가 코드에서 EndPoint/address/binding을 구성해야합니다 (하드 코딩 됨)하지만 WCF 측에서 뭔가 변경되면 클래스 라이브러리가 더 이상 작동하지 않는 것처럼이 길로 내려가는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 당신이 권고 한 것을 수행하고 웹 서비스 메서드를 노출하는 인프라에서 클래스를 추가했지만 여전히 동일한 문제가 발생했습니다. 기본 응용 프로그램 app.config에 정보를 추가하면 작동합니다. – klashagelqvist

+0

내 대답 –

+0

을 편집 한 경우 내부적으로 끝점/바인딩을 구성하지 않고 기본 app.config에 필요한 정보를 추가했음을 수락했습니다. 감사 – klashagelqvist

0

기본 앱에 서비스 참조를 추가 할 필요는 없지만 관련 구성을 주 app.config에 복사해야합니다