2017-10-09 1 views
0

내 솔루션에 내 응용 프로그램에서 보낸 전자 메일의 템플리트 역할을하는 txt 파일이 있습니다. 파일에는 내 앱의 호스트 URL을 포함하는 링크가 있습니다. Azure App Service의 준비 슬롯에 배포 할 때 배포 URL은 myapp-staging.azurewebsites.net이고 준비 단계에서 전자 메일을 테스트하려면 해당 링크에 해당 URL이 있어야합니다.Azure 배포 슬롯 및 URL 코드

프로덕션 환경에서 호스트 URL은 myapp.customdomain.com이됩니다. 이제 텍스트 파일의 URL에 프로덕션 슬롯에 사용 된 URL이 반영되어야합니다.

각 슬롯에 배포되는 코드의 URL을 필요로하는 경우 배포 슬롯을 사용하는 방법과 스와핑의 이점이 있습니까? 배포 슬롯 응용 프로그램 설정 (Deployment Slot App Settings)을 살펴 봤지만 URL을 사용하여 텍스트 파일에 URL을 다시 쓸 수는 없습니다.

+0

요청 URL을 확인할 수있는 코딩 솔루션이있을 수 있습니다. 어떤 언어/도구 집합을 사용하고 있습니까? –

+0

우리는 C#을 사용하고 있습니다. – andy

답변

0

.

우선 WEBSITE_SITE_NAME을 기반으로 동적으로 텍스트 파일에서 hostURL을 확인하고 바꿀 수 있습니다. 다음 코드 스 니펫을 참조하십시오.

var siteName = Environment.ExpandEnvironmentVariables("%WEBSITE_SITE_NAME%"); 

string template = System.IO.File.ReadAllText(Server.MapPath("~/Content/email.txt")); 

//determine if it is staging slot 

if (siteName.IndexOf("-staging") > 0) 
{ 
    //replace hostURL based on siteName 

    template = Regex.Replace(template, @"hostURL:myapp.azurewebsites.net", "hostURL:myapp-staging.azurewebsites.net"); 
    System.IO.File.WriteAllText(Server.MapPath("~/Content/email.txt"), template); 
} 
else 
{ 
    //replace hostURL based on siteName 

    template = Regex.Replace(template, @"hostURL:myapp.azurewebsites.net", "hostURL:myapp.customdomain.com"); 
    System.IO.File.WriteAllText(Server.MapPath("~/Content/email.txt"), template); 
} 

둘째, 가능하다면, 당신은 생산 및 준비 슬롯에 다른 hostURL 내용이 개 별도의 텍스트 파일을 배포 할 수 있습니다.

0

서버 주소 다음에 리소스 경로 만 저장해야합니다.이 경우 코드 자체에서 서버 URL을 가져 와서 파일에 포함될 나머지 경로와 연결해야합니다.

당신이 사용하는 현재의 서버 경로를 얻으려면 : 그 텍스트 파일의 URL을 다시 작성하는 사람들을 어떻게 활용할 수 있는지

string.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Authority)