0

우리가 구축 한 Umbraco 사이트에 Azures 배포 슬롯을 활용하려고합니다. 기본적으로 Azure 배포 슬롯 및 연결 문자열

은 Umbraco는 섹션의 Web.config의 connectionStrings에 정의 된 DSN을 사용하고, 우리는 그것이 앉아있어 배포 슬롯의 연결 문자열을 사용하고 싶습니다.

우리가를 시도했다

Azure 배포 슬롯은 모든 정의 된 응용 프로그램 설정 (및 연결 문자열)을 환경 변수에 넣고 액세스하려면 Environment.GetEnvironmentVariable()을 사용할 수 있지만 Umbraco에게이를 수행하는 방법이없는 것 같습니다.

OnApplicationInitialized() (/App_Code/Core/UmbracoAppStart.cs)에서 우리는 web.config에서 connectionstring 섹션을로드하고, env vars에서 connstr을 가져오고, DSN을 connectionstring 섹션에 추가하고 저장했습니다. 올바른 연결 문자열이 저장되고 저장되지만이 변경 사항은 web.config 변경으로 인해 앱을 재활용하는 것처럼 보이므로 시간 초과가 발생합니다. (또는 Umbraco XML 캐시 오류이거나 페이지를로드하는 데 20 분이 걸립니다.)

appsettings 및 connectionstrings 섹션을 별도의 파일에 저장할 수 있다는 것을 알고 있습니다. 그러나 파일 속성 (참조 된 파일이 변경된 경우 재활용되지 않음)은 connectionStrings 섹션에서 작동하지 않습니다. - 구성 소스 속성 만 변경되면 재활용됩니다.

(에서 : ASP.NET web.config: configSource vs. file attributes는)

도움말

는 사람이 주위에 방법을 발견 했습니까? 웹 슬롯이 아닌 배치 슬롯 연결 문자열을 사용하려면 Umbraco를 설치하기 만하면됩니다.

나는 그것이 작동하는 방법을 이해하지 않고 순간적으로 복사하고 붙여 넣을 용의가 있습니다 - 나는 그것을하는 것을 싫어합니다. :) 하지만 클라이언트가 크리스마스 전에 방영되기를 원할 때 사람들이 동의하면 어떻게되는지 ...

답변

0

Azure 연결 문자열 또는 앱 설정을 사용하기 위해 코드를 수행 할 필요가 없습니다. web.config에있는 키/이름과 동일한 키/이름을 지정하면 대신 사용됩니다.

그래서 당신은 당신의 웹 설정에서이있는 경우 :

<add name="umbracoDbDSN" connectionString="Server={server};Initial Catalog={db};Persist Security Info=False;User ID={user};Password={password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=300;" providerName="System.Data.SqlClient" /> 

귀하의 슬롯 구성이 같아야합니다

enter image description here

이 앱 설정은 단지 동일한 키를 사용하여 교체하려면. 이것에 대한 그래서 :

<add key="umbracoUseSSL" value="false" /> 

이 작업을 사용하십시오 : 당신이 설정이 슬롯 구체적하려면 enter image description here

당신이 Slot setting 확인란을 선택해야합니다.

+0

와우, 나는 지금 어리 석다.나는 푸른 하늘에 같은 이름을 사용하여 connstr을 추가하려고 시도한 적이 없다는 것을 인정해야한다 ... 아직도 지난 며칠 동안 내 인터넷 검색에서이 사실을 알지 못했다고 믿을 수 없다. 그래도 고마워 Mario :) – Jag

+0

하, 문제 없어요. 당신이 그것을 알면 모든 것이 쉽습니다. –