2013-08-20 2 views
6

web.config (Debug - web.Debug.config)에 연결 문자열이 하드 코딩 된 WebForms 프로젝트가 있습니다. 이 연결 문자열은 개발을 위해 DB 서버를 가리 킵니다.로컬 개발을 위해 web.config에서 연결 문자열을 재정의 할 수 있습니까?

변경 사항이 다른 사람들에게 즉시 영향을 미치지 않도록 해당 데이터베이스의 로컬 복사본을 실행하고 싶습니다.

내가 해왔 던 것은 web.config에 들어가서 로컬 문자열을 가리키는 연결 문자열을 업데이트하는 것입니다. 이 작업은 가능하지만 web.config를 제외하고 모든 변경 사항을 취소하면 다시 업데이트해야한다는 점에서 다소 지루합니다.

내가 말했듯이 다른 사람들이이 솔루션을 사용하고 있기 때문에 웹 설정을 수정하거나 수정하지 않는 것이 좋습니다.

web.config 연결 문자열을 덮어 쓰면 소스 제어에 아무 것도 확인하지 않고 사이트가 내 로컬 DB를 가리 키도록 강제 할 수 있습니까?

답변

3

로컬 컴퓨터에 SQL ALIAS을 만듭니다.

시작을 클릭하고 로컬 컴퓨터에 "cliconfg.exe"를 입력하십시오. 이렇게하면 로컬 컴퓨터에 SQL 별칭을 만드는 데 도움이됩니다. web.config에서 라이브 데이터베이스에 연결하지만 컴퓨터에서 로컬 데이터베이스로 리디렉션 할 SQL 별칭을 만듭니다. 이 작업이 끝나면 프로그램을 게시 할 때 자동으로 실제 데이터베이스에 연결되지만 로컬 컴퓨터에서 실행하면 코드가 변경되지 않고 로컬 데이터베이스에 연결됩니다.

+0

내 경우에는 이것을 확인하지 않아, 내가 찾고 있던 것이었다. 그것은 다른 사용자에게 명확하지 않다, 당신이 그것에 대해 모르는 경우 혼란스러워 할 수 있으므로 다른 두 가지 장점을 분명히 볼 수 있지만이 사실은 로컬 프로젝트가 dev SQL 서버에 충돌하려고 할 때 적용된다는 사실은 완벽합니다. 내 상황에. 감사! –

6

당신이 할 수있는 한 가지 일은 연결 문자열을위한 별도의 파일을 갖는 것입니다.이 파일을 소스 콘트롤로 전혀 체크인하지 않을 것입니다.

물건 구성 방법에 따라 동일한 작업을 수행하는 모든 사람이 필요하며 게시/배포 방법에 따라 이것이 효과가 없을 수 있습니다. 예를 들어

:

의 Web.config (안 소스 제어)

<configuration> 
    <connectionStrings configSource="connectionstrings.config"> 
    </connectionStrings> 
</configuration> 

connectionstrings.config 각 개발자가 선택할 수

<connectionStrings> 
    <add name="cs" connectionString="server=.;database=whatever;"/> 
</connectionStrings> 

하는 데이터베이스를 자신의 로컬 컴퓨터를 ~에 가리키고 connectionstrings.config 파일에없는 한 (무시 목록에 추가) 통제하지 않으면 아무도 서로 발걸음을 옮길 수 없습니다.

9

한 가지 해결책은 구성 변환 기능을 사용하는 것입니다.

VS 2012 :

  1. 이동 구성 관리자> 활성 솔루션 구성 목록 상자에
  2. 클릭 㑇여 "새"를 선택합니다.
  3. 새 구성의 이름으로 로컬을 입력하고 저장을 클릭하십시오.
  4. 당신이 디버그로 구성 열에서 값을 다시 변경하거나 확인하는 적 기본 이전에
  5. 오른쪽 새로 만든 web.local.config을 추가 할 것이다, 구성 변환을 추가하여 Web.config 파일을 클릭하고 선택했다
  6. 내부가

당신은 실행하거나 프로젝트를 디버깅

<connectionStrings> 
    <add name="DbConnection" 
     connectionString="...Add Local Connection String..." 
     xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
</connectionStrings> 
처럼, 로컬 연결 문자열 변환 뭔가를 추가 web.local.config, 당신이로부터 로컬 구성을 선택해야합니다 녹색 실행 화살표 옆의 목록 상자. 당신은 web.local.config

+3

단순히 빌드/실행하면 Web.config 변환이 작동하지 않습니다. 게시 (바보 같은 MS)가 필요합니다. http://stackoverflow.com/a/14416118/56621 – Alex

+0

config 변환에 관한 또 다른 어리석은 점은 기본 web.config 파일을 덮어 쓰므로 소스 제어에서이 문제를 해결해야한다는 것입니다. 더 좋은 방법이되어야 해. –

관련 문제