2016-10-14 4 views
2

누군가가 여러 다른 서버에서 여러 웹 응용 프로그램에 사용할 수있는 연결 문자열 또는 응용 프로그램 설정의 저장소로 데이터베이스를 사용했는지 궁금하십니까?ConnectionStrings 또는 AppSettings의 저장소

웹 API 응용 프로그램은 모두 로깅 데이터베이스와 추적 데이터베이스에 대한 연결 문자열을 가지고 있으며 앞으로 6 개월 이내에 해당 데이터베이스가 위치를 변경한다는 것을 알고 있습니다. 각 web.config 설정으로 나가서 다음 몇 달 동안이 연결 문자열 (및 기타)의 중앙 저장소를 가리 키도록 웹 서비스를 리팩토링하고 싶습니다.

나는 각 web.config에 연결 문자열이있는 이유 인 Machine.config를 피하기 위해 매우 열심히 노력합니다.

우리는 세션 관리에 redis를 사용하고 있으며 궁극적으로 키 - 값 쌍이므로 데이터베이스 중 하나를 사용하려고 생각했습니다. 누군가 그 문제에서 그것을 사용 했습니까?

이 문제를 어떻게 극복 했습니까?

너무 광범위하게 표시되었으므로 세부 정보를 더 추가 할 수 있는지 알려주세요. 우리는 web.config 내에서 모두 동일한 연결 문자열을 가지고 있으며 여러 개의 다른 서버에 위치하는 50 개의 웹 서비스를 보유하고 있습니다. 연결 문자열이 변경되면 각 웹 서비스를 재배포하거나 각 web.config를 편집하는 대신 단일 리소스를 편집해야 할 수 있도록 공유 리소스를 사용하도록 이러한 서비스를 편집 할 수 있습니다. 나는 machine.config를 사용하는 팬이 아니다.

답변

1

당신이 완벽하게 같은 글로벌 설정을 저장 레디 스 또는 데이터베이스를 사용할 수 있지만은, 어쩌면 당신이 필요로하는 무엇 빌드 스크립트입니다.

여러분이 .NET 세계에 있다면, Team Foundation Build을 제공하는 Team Foundation Server가 무엇인지 알고있을 것입니다.

연결 문자열과 같은 설정을 하드 코딩하는 대신 대개 사용자 지정 빌드 속성으로 제공하여 파일의 일부 자리 표시자를 바꿀 수 있습니다. 다음과 같이 파일이 보일 것이다

<add name="myConnectionString" connectionString="server=%host%;database=%database%;uid=%user%;password=%password%;" /> 

당신이 (빌드 구성에서 실제 값으로 자리를 대체 할 파워 쉘 단계를 추가하려면이 다른 Q & A를 참조 할 수 있도록 TFS 2015 년 이후, TFS 빌드는 스크립트 빌드 시스템을 가지고 자세히 알아보기 : How to replace multiple strings in a file using powershell).

일단 자리 표시자를 바꾼 다음에는 배포 단계를 추가하고 FTP, WebDeploy 또는 다른 프로토콜을 사용하여 일부 응용 프로그램에 전체 응용 프로그램을 배포 할 수 있습니다. 그들이 배포에 따라 다를 수 있습니다, 이러한 변수 설정이 될 수 있다면 아마 당신의 최선의 방법도 web.config에 하드 구성을 피하고 요약

는 빌드 스크립트를 사용하여을 주입. 즉, 일부 구성을 변경하면 사용자 정의 특성 작성에서이를 수행 한 다음 구성 변경 사항을 사용하여 응용 프로그램을 다시 전개합니다.

이 페이지에서는 더이 방법을 조사하기위한 좋은 시작이 될해야합니다 Visual Studio Team Services on Azure을 확인, 또한 https://www.visualstudio.com/en-us/docs/build/define/build

, TFS의 변형은 푸른에서 호스팅.

+0

매우 정확하지만 웹 사이트를 배포 할 때 스크립트 작성 기능을 사용하므로 데이터베이스가 변경 될 때 50 개의 웹 서비스를 재배포하거나 편집하고 싶지 않습니다. 오히려 단일 위치를 편집하고 일부 캐싱이 끝나면 모든 것이 새 데이터베이스를 사용하여 시작됩니다. –

+0

@RodneyPannell 그러나 WebDeploy를 사용하면 수정 된 파일 만 동기화 할 수 있습니다. 실제로 web.config 만 있습니다. 또는 WinSCP를 동기화 명령과 함께 사용할 수 있습니다. ** 하나의 빌드로이 50 개의 배치를 실행할 수 있습니다 **. 왜 안돼? 한 번 해보면 버튼을 클릭하여 빌드 대기열에 신경 써야합니다! –

관련 문제