2013-06-02 2 views
3

실무 배치가 있습니다. cmd를 파일에 다음Azure에서 비정상적인 인스턴스

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

: 푸른이를 게시 할 때

%windir%\system32\inetsrv\appcmd set config /section:urlCompression /doDynamicCompression:True /commit:apphost 
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost 

나는 점점 오전 :

Your role instances have recycled a number of times during an update or upgrade operation. This indicates that the new version of your service or the configuration settings you provided when configuring the service prevent the role instances from running. Verify your code does not throw unhandled exceptions and that your configuration settings are correct and then start another update or upgrade operation. 
나는 클라우드 서비스 역할의 구성 파일에 추가 한

Cmd 파일에 COPY ALWAYS 특성이 있습니다. 그래서 이것은 괜찮을 것입니다. <Startup> 태그를 구성에서 제거하면 성공합니다.

위의 내용은 배포가 실패한 것으로 보입니다.

어떤 이유가있을 수 있습니까? 감사합니다.

답변

4

시작 명령의 리턴 코드가 항상 0인지 확인하십시오. 그렇지 않으면 azure는 실패한 것으로 가정하고 역할을 재활용합니다.

'exit 0'을 배치 파일의 마지막 명령으로 추가하여 성공 코드 0으로 종료되도록 할 수 있습니다.

대부분의 경우, 명령이 실패하거나 성공할 않지만, 리턴 코드가 아무 신호 없음 비 제로는 등

+0

변경 그러나 그것은 기본적으로 문제의 원인을 숨기고 문제가 해결되지 않습니다. 결국 "exit 0"을 추가하는 것이 옳은가요? – loop

+0

@loop 가끔 적합합니다. 예를 들어 위의 시나리오에서 appcmd의 종료 코드는 "이 구성 설정이 이미 적용되었습니다"라는 의미가 아닌 0이 아니므로 무시할 수 있습니다. "exit 0"은이 코드를 표시하지 않습니다. – Andrew

+0

그러나 구성 설정이 잘못되었을 경우 오류가 표시 될 수 있습니다. 나와 함께 일어났습니다. – loop

관련 문제