2011-03-07 4 views
1

두 가지 프로젝트가 있습니다.클래스 라이브러리의 앱 설정은 어떻게 사용합니까?

하나는 웹 서비스를 참조하는 WCF 프록시 프로젝트입니다. 이 프로젝트가 웹 서비스와 상호 작용하기위한 모든 논리를 포함하기를 바랍니다.

또한이 프록시 프로젝트를 호출하려는 테스트 프로젝트가 있습니다.

문제는 WCF 프록시 프로젝트에서 끝점과 같은 모든 구성 설정이 있다는 것입니다. 그것을 실행할 때이 오류가 발생하여 끝점을 찾을 수 없다는 메시지가 나타납니다.

기본 엔드 포인트를 요소를 찾을 수 없습니다 그 참조 계약 'AlumniWebService.IAlumniWebService' ServiceModel은 서비스 클라이언트 구성 섹션입니다. 응용 프로그램에 대해 구성 파일이 없거나이 계약과 일치하는 끝점 요소가 클라이언트 요소에서 발견 되었기 때문에 이것은 일 수 있습니다.

웹 서비스를 호출하려면 테스트 프로젝트에 모든 WCF 웹 서비스 구성을 넣어야합니다.

이 웹 서비스는 아마도이 테스트 프로젝트뿐만 아니라 여러 웹 응용 프로그램에 의해 소비 될 것입니다. 그래서 여러 버전을 가질 필요가 없도록 프록시 프로젝트에서 구성을하고 싶습니다.

참조 할 프록시 프로젝트의 웹 구성을 어떻게 가져 옵니까?

답변

0

기본 web.config에 사용자 지정 web.config (응용 프로그램에 대한 일부 설정이있는 web.config 지원)를 가져올 수는 있지만, 지원 web.config에서 기본 web.config로 서비스 끝점 구성을 가져올 수 있다고는 생각하지 않습니다. .

테스트 응용 프로그램에서 서비스를 구성하는 데 관심이 있다면 테스트 응용 프로그램에 서비스 참조를 추가하기 만하면 Visual Studio는 호스트 응용 프로그램의 구성에 따라 테스트 응용 프로그램에서 자동으로 구성을 구성합니다.

3

기본적으로 .NET 구성 시스템은 클래스 라이브러리 구성 파일을 보지 않습니다. 그들은 도우미로서 표본으로 만들어지고 있습니다. 그러나 그들은 사용되지 않았습니다. 클래스 라이브러리를 "활성화"하고 사용하기 위해 사용할 기본 응용 프로그램에 구성을 입력해야합니다.

  • 는 별도의 파일로
  • 참조를 <system.serviceModel>의 하위 요소를 각각 넣어 기본 설정에서 해당 :

    는 수동 작업의 비트와 함께 할 수있는 한 가지는 이것이다

    <system.serviceModel> 
        <behaviors configSource="behaviors.config" /> 
        <bindings configSource="bindings.config" /> 
        <client configSource="client.config" /> 
    </system.serviceModel> 
    

그런 식으로 당신은 "구체화"설정 파일의 한 세트를 가지고 있고, 임의의 수에서 그들을 참조 할 수 있습니다 다른 프로젝트.

Visual Studio에서이 사실을 제대로 알지 못하고 오류로 강조 표시되지만 신뢰할 수는 있습니다.

을 : 당신의 bindings.config이 같을 것이다, 그래서

가 그 외부 설정 파일이 그 특정 섹션에 딱 비트를 포함하는 것 (그것이 어떤 설정 섹션에 configSource= 속성을 이해하지 않습니다 단지 VS 결핍이다)

<?xml version="1.0" encoding="utf-8"?> 
<bindings> 
    <basicHttpBinding> 
     <binding name="YourBindingName" 
        receiveTimeout="00:02:00" sendTimeout="00:02:00" 
        maxBufferSize="512000" maxBufferPoolSize="524288" 
        maxReceivedMessageSize="512000" 
        useDefaultWebProxy="false"> 
       <security mode="None" /> 
     </binding> 
    </basicHttpBinding> 
</bindings> 
+0

안녕하세요. 작동하지 않는다고 생각합니다. 이 오류가 발생합니다. configSource '.. \ AlumniWebService \ app.config'이 (가) 잘못되었습니다. 그것은 동일한 디렉토리 또는 구성 파일과 같은 하위 디렉토리에있는 파일을 참조해야합니다. 프로젝트 내 다른 설정 파일 만 참조 할 수있는 것처럼 보입니다. – Diskdrive

+0

@RoboShop : 참조 된 설정 파일은 앱 디렉토리 또는 해당 앱 디렉토리의 하위 디렉토리에 명확하게 표시되어 있습니다. 그건 기본, 기본 .NET 제한입니다. –

+0

그래,하지만이 웹 서비스를 참조 할 필요가있는 내 솔루션에는 몇 가지 웹 응용 프로그램이 있습니다. 그들은 모두 서로 다른 디렉토리에 있기 때문에 참조 할 수있는 구성의 단일 복사본을 가질 수 없습니다. 그리고 약간의 인터넷 검색에서 주위에 얻을 수없는 .net 제한 인 것 같습니다 : ( – Diskdrive

관련 문제