2009-05-15 3 views
1

WCF 서비스 호스트 역할을하는 프로젝트가있는 .NET 2008 솔루션이 있습니다. 이 프로젝트에는 프로젝트가 완료 될 때 설치 관리자가 바꿀 설정이 포함 된 web.config 파일이 있습니다. 이러한 설정은 연결 문자열과 몇 가지 다른 사항을 구성하는 구성 요소입니다.계층을 통해 전달 된 Web.config 값

이 WCF 프로젝트는 Entity Framework를 사용하는 DAL 프로젝트를 참조하는 비즈니스 논리 프로젝트 (서비스 코드를 구현하는 클래스 라이브러리)를 참조합니다.

내가 알고 싶은 것은 DAL에 대한 WCF 프로젝트의 web.config에 값을 어떻게 얻을 수 있습니까? OpenMappedExeConfiguration에서 본 상대 경로를 사용하지 않고. web.config 파일의 설정을 기반으로 DAL에 연결 문자열을 작성해야합니다.

답장을 보내 주셔서 감사합니다.

답변

1

1 개의 폴더에 연결 문자열과 같은 공유 항목을 저장합니다.이 폴더는 소스 코드가있는 폴더 아래에 있지도 않습니다. DAL 티어에서는 ConfigurationManager를 사용합니다.

응용 프로그램 (귀하의 경우 WCF 프로젝트)을 시작하는 프로젝트에서 외부 "구성"폴더의 "ConnectionStrings.config"파일을 추가하십시오 마찬가지로 링크 (비주얼 스튜디오에서 'add 기존 항목 '-> 항목 선택 ->'추가 '버튼 옆에있는 화살표는이 옵션이있는 곳의 화살표입니다.) 그런 다음 프로젝트 속성으로 파일 속성 (솔루션 탐색기에서 파일 클릭 -> F4 키 누름)을 설정하고 폴더를 배포하도록 수정하면 다시 복사해야합니다. 그런 다음 "ConnectionString.config"를 포함하는 새로운 app.config 파일을 프로젝트에 추가합니다. connectionstrings.config의

출처 : WCF 프로젝트의 app.config의

<connectionStrings> 
    <add name="MyConnectionString" 
    connectionString="Data source=tralala"/> 
</connectionStrings> 

출처 :

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings configSource="ConnectionStrings.config"></connectionStrings> 
</configuration> 

나는 이것이 가장 좋은 방법입니다 확실하지 않다. 그러나 지금까지 그렇게 좋았습니다.

+0

이것은 프로젝트가 서로에 대해 알고있는 유용한 방법입니다. "블랙 박스"구성 요소를 개발할 때는 제대로 작동하지 않습니다. 이 경우 구성 요소 "X"를 응용 프로그램 "Y"에 포함 시키면 구성 요소 "X"에 필요한 구성 항목이 응용 프로그램 구성 파일에 기록됩니다. 불행히도, 그런 식으로 작동하지 않습니다. –

+0

사실 내가 구축하고있는 구성 요소가 독립 실행 형 구성 요소로는별로 쓸모가 없다는 점을 조금은 알고 있습니다. 서비스 구현 코드는 BL에 있고 BL은 DAL에서 온 EF 엔티티를 사용합니다. 그러나 나는 John과 동의하며,이 경로를가는 모든 사람이이 점을주의해야한다고 말합니다. 나는이 접근 방식을 구현하는 데 바쁘다. – DivanMoller

+0

나는 귀하의 제안 Arnis를 시도했으며 효과가 있습니다. 비록 appSettings를 사용했지만 connectionString은 사용하지 않았습니다. 동의하지 않았을 수도 있습니다 최선의 방법은 내가 찾지 못했을위한 완벽한 솔루션을이 제안을 공개합니다. 도와 주셔서 감사합니다. – DivanMoller

0

불행히도 귀하의 질문에 대한 답변은 "복사하여 붙여 넣기"입니다. 이것은 항상 사실입니다.

이 규칙의 예외 중 가장 가까운 것은 "새로운".NET 2.0 설정 파일입니다. 이러한 구조와 기본값은 구성 요소를 정의하는 어셈블리의 일부이므로 구성 요소는 시작시 응용 프로그램 구성에 기본값을 기록하게 할 수 있습니다. 필자는 포함 된 응용 프로그램을 시작하기 전에 기본값을 기록하도록 installutil을 사용하여 코드 조각과 결합하여 처음으로 응용 프로그램을 사용하기 전에 구성 파일의 기본값을 편집 할 수 있다고 생각합니다. .