가지고있어 두 가지 문제 :
1. 올바른 설정을 매번 게시 기억하는 방법 게시 : 이러한 설정을 배포하는
한 가지 방법은 Web.config의 변환을 사용하는 것입니다 Visual Studio에서. 이것은 설정이 매우 쉽고 게시 할 때마다 설정을 업데이트 할 필요가 없음을 의미합니다.
디버그 및 릴리스 환경뿐만 아니라 "UAT", "스테이징", "베타"또는 필요한 다른 구성에 대한 변환을 만들 수도 있습니다.
이 기사는 유용 할 수 있습니다. here, here 및 here. 위
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
</system.web>
</configuration>
, 당신이 릴리스 모드로 변환 것을 보게 될하여 mydb 연결 문자열의 속성을 설정합니다 (XDT : = "SetAttributes"를 변환 예를 들어
는 여기에 릴리스 환경에 변환입니다), 컴파일 섹션에서 debug 특성을 제거하고 customErrors 섹션을 새 버전으로 바꿉니다.
간단하면서도 강력한 기술입니다.
2. 라이브러리, 그들의 연결 문자열을 검색해야하는 일반적인 방법으로 기록 된 경우 단순히 에 액세스하여 Web.config의에서
을 설정을 선택하기 위해 어셈블리를 얻는 방법 [웹] ConfigurationManager.ConnectionStrings 속성입니다. @Bob Horn과 마찬가지로 호스트 프로세스의 설정 파일 (이 경우 웹 앱의 web.config)에서 설정을 가져와야합니다.
그러나 때로는 라이브러리가 프로젝트의 .Settings 파일에서 설정을 가져 오는 경우가 있습니다.이 경우 상황이 좀 더 복잡해집니다. app.config의 설정 섹션을 web.config에 복사해야합니다. 위에서 설명한 변환 기술을 사용하여이 작업을 수행 할 수도 있습니다.
다른 어셈블리의 소스 코드에 액세스 할 수 있으면 연결 문자열을 검색하는 코드 부분을 찾으십시오. ConfigurationManager 클래스에 액세스하지 않는 경우 web.config 파일을 가져 오지 않는 이유가 설명 될 수 있습니다.
사용되는 구성 파일은 호스트 프로세스의 구성 파일입니다. 따라서 웹 사이트에서 DB 호출을하는 경우 연결 문자열은 웹 구성에서 가져와야합니다. 귀하의 웹 사이트가 DB 호출을하고 있습니까, 아니면 실제로 전화를 걸고있는 다른 서비스 (호스트 프로세스)를 호출하고 있습니까? –
꽤 확실한 웹 사이트. 그것은 DataContext를 보이는 Settings.settings를 사용하여 확장하는 내부 DAL 타입 라이브러리를 호출합니다. 그게 문제 야? Settings.settings가 무시되지 않습니까? – erosebe