2012-02-16 2 views
5

Azure에 배포 할 Azure Deployment 프로젝트를 추가 한 표준 ASP.Net 응용 프로그램이 있습니다. 앱은 Azure에 잘 배치합니다.Windows Azure 시작 작업이 실행되지 않음

그런 다음 시작 작업이 필요하도록 확장하려고했습니다.

은 내가

<Startup> 
    <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple"/> 
</Startup> 

STARTUP.CMD는 응용 프로그램 bin 폴더에있는 ServiceDefintion.csdef에 다음을 추가했다. 명령 파일을 로깅하여 실행되지 않는 것을 볼 수 있습니다.

내 로컬 컴퓨터의 Compute Emulator에 동일한 응용 프로그램을 배포하면 시작 작업이 올바르게 실행됩니다.

내가 누락 된 항목이 있습니까?

+0

AppRoot \ Bin은 Application \ bin 폴더와 잠재적으로 다를 수 있습니다. 응용 프로그램이 가상 디렉터리에 있습니까? –

+0

파일이 Azure 상자에 배포되고 있습니까? RDP를 켜고 수동으로 실행하면 어떻게됩니까? –

+0

파일이 확실히 Azure에 배포되었으므로 RDP를 Azure로 실행할 때 제대로 실행할 수 있습니다. – keitn

답변

1

"startup.cmd"는 응용 프로그램 BIN 폴더에 있지 않고 루트 폴더에 있고 "콘텐츠"및 "출력 디렉토리에 복사"-> "항상 복사"로 표시됩니다. 그렇지 않으면 Azure에 배포되지 않습니다.

웹 응용 프로그램에주의해야 할 또 다른 순간은 bin 폴더를 시작 작업 정의에도 넣어야한다는 것입니다. 예 :

<Startup> 
    <Task commandLine="./bin/startup.cmd" executionContext="elevated" taskType="simple"/> 
</Startup> 

희망이 있습니다.

+0

확실히 배포되었습니다. 그것은 루트에 있으며 내용과 항상 복사로 표시됩니다. – keitn

+1

"./bin/startup.cmd"를 사용하면 게시시 경로를 찾을 수 없음 오류가 발생합니다. commandLine에서 파일의 이름을 startup1.cmd와 같이 무효로 변경하면 Azure는 파일이 올바른 위치에 있으며 발견되었음을 나에게 알리는 예외를 throw합니다. – keitn

+0

나는 이것이 아직 upvoted되지 않았다 놀란다. 이것이 나를위한 해결책이었습니다. 그러나 스크립트가 아직 실행 중이 아닌 것 같습니다. 그러나 (원격 데스크톱을 사용하여) 수동으로 실행했을 때 스크립트의 첫 줄에 이상한 기호가 삽입되었습니다. 왜 이렇게했는지는 모르지만 첫 번째 줄 대신 .cmd 파일의 두 번째 줄에서 스크립트를 시작하는 것으로 끝났습니다. 그런 다음 사용자 지정 스크립트를 실행하는 시작 작업을 포함하여 모든 기능이 올바르게 작동했습니다. – Ant

0

조금 늦었습니다.

나는이 문제도 잘 알고 있었고 Azure Cloud Service 프로젝트 대신 Web Role 프로젝트를 시작 프로젝트로 설정했다. Azure Cloud Service를 시작 프로젝트로 설정하면 하늘 환경에서와 마찬가지로 작업을 시작, 실행 및 중지하는 데 필요한 하늘 에뮬레이터로 프로젝트를 시작할 수 있습니다.

관련 문제