2012-10-29 2 views
1

사이트 관리자를 사용하여 각 인스턴스에서 iis 로그의 파일 경로를 가져 와서 blob 저장소에 업로드합니다.사이트 관리자를 사용하여 webrole 인스턴스의 도메인 이름을 얻는 방법은 무엇입니까?

내 프로젝트에는 두 가지 버전의 서비스 인 디버그 1과 온라인 서비스가 있으며 서비스 인스턴스에서 iis 로그 만 업로드 할 수 있습니다. 프로젝트를 관리하려면 인스턴스가 온라인 서비스에 있는지 판단 할 도메인 이름을 확인해야하므로 동일한 코드를 사용하여 디버그 서비스와 온라인 서비스를 모두 업데이트 할 수 있습니다. 내가 변수 사이트에서 도메인 이름을 확보하고 로그를 업로드 여부를 결정할 필요가 있다고 생각

SiteManager sm = new SiteManager(); 
foreach (var site in sm.Sites) 
{ 
    string[] logDir = GetIISLogDir(site); 
    foreach (string filePath in logDir) 
    { 
     UploadLogToStorage(filePath); 
    } 
} 

: 지금까지

, 여기에 내 코드입니다.

답변

2

이 (REST API)에는 Get Deployment 작업을 사용해야합니다.

인스턴스 내에서 현재 배포 ID (RoleEnvironment.DeploymentId)에 액세스 할 수 있습니다. 배포 슬롯 (prod/staging)과 같은 현재 배포에 대한 정보를 얻으려면 Get Get을 호출 할 때이 ID를 사용할 수 있습니다 ...

0

Windows Azure 진단은 자동으로 IIS 로그를 업로드하도록 지원합니다. 이 대신에 이것을 사용 해본 적이 있습니까? 진단 플러그인을 실행중인 경우 원격으로 구성 할 수 있습니다. DM을 프로덕션 대 dev (모범 사례) 용으로 다른 저장소 계정을 사용하도록 구성한 경우 어떤 배포 ID가 어떤 것이 어쨌든 다를 것이라고 생각하지 않아도됩니다. PaaS 모델 (예 : IaaS 또는 WAWS)을 사용하지 않는 경우 로그를 직접 업로드 할 코드를 작성할 필요가 없습니다.

관련 문제