2014-01-10 2 views
3

2 개의 역할을 가진 클라우드 솔루션 (웹 역할 1 개, 작업자 역할 1 개)이 있습니다. 이 솔루션은 최근에 잘 작동하는 sdk 2.1에서 업그레이드되었습니다.sdk 2.2로 업그레이드 한 후 하늘색 솔루션을 디버그 할 수 없습니다. 솔루션은 디버깅없이 정상적으로 실행됩니다. 실행중인 에뮬레이터에 디버거를 연결할 수 있습니다.

디버깅없이 (예 : Ctrl-F5) 솔루션을 실행하면 에뮬레이터가 실행되고 필요에 따라 역할이 작동합니다. 그 시점까지 모든 역할 초기화를 놓친 적이 있지만 실행중인 역할에 디버거를 연결할 수도 있습니다.

디버깅 (예 : F5)으로 실행하면 에뮬레이터가 시작됩니다. 작업자 역할이 "Role state busy"에서 멈추는 경우 웹 역할이 "Role hehealthy"에서 멈추고 Visual Studio가 응답하지 않게되고 작업 관리자가 종료해야합니다. VS에서는 낮은 RHS의 배포 애니메이션이 계속 실행됩니다. RoleEntryPoint의 모든 OnStart 및 Run 재정의를 주석 처리하더라도 동일한 일이 발생합니다. 얼마나 일찍 애플 리케이션 라이프 사이클에 상관없이 나는 어떤 브레이크 포인트를 칠 수 없으므로 에뮬레이터 인프라 스트럭처/디버거 문제 일 것이라고 확신한다.

현재 어셈블리 바인딩 로깅을 실행 중이며 일반적인 것으로 눈치 채지 못했습니다. 모든 프로젝트와 모든 종속성에서 sdk 참조가 업그레이드되었는지 확인하고 다시 점검했습니다.

디버깅을 사용하고 역할 진단을 사용하도록 설정 한 경우 다른 모든 항목이 고정되어 있어도 구성 업데이트와 관련된 항목이 출력에 추가됩니다. 예 :

[Diagnostics]: Checking for configuration updates 10/01/2014 

나는 생각할 수있는 모든 것을 다 써 버린 새로운 조사 라인을 찾고 있습니다. 덧붙여 말하면, 이것은 특정 머신이 아니며 여러 머신에서 테스트를 거쳤으며 모두이 동작을 나타냅니다.

편집 : 다른 클라우드 솔루션은 2.2 SDK에서도 디버깅 할 수 있습니다.

업데이트 : 나는 로그에 다음과 같은 무엇입니까 :

<Log> 
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
    <System> 
     <Provider Name="Application Hang"/> 
     <EventID Qualifiers="0">1002</EventID> 
     <Level>2</Level> 
     <Task>101</Task> 
     <Keywords>0x80000000000000</Keywords> 
     <TimeCreated SystemTime="2014-01-17T18:53:34.000000000Z"/> 
     <EventRecordID>1216077</EventRecordID> 
     <Channel>Application</Channel> 
     <Computer>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Computer> 
     <Security/> 
    </System> 
    <EventData> 
     <Data>devenv.exe</Data> 
     <Data>12.0.21005.1</Data> 
     <Data>2910</Data> 
     <Data>01cf13b4114dc59b</Data> 
     <Data>4294967295</Data> 
     <Data>C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe</Data> 
     <Data>a94194c4-7fa8-11e3-bed7-001e4fea6057</Data> 
     <Data/> 
     <Data/> 
     <Binary>54006F00700020006C006500760065006C002000770069006E0064006F0077002000690073002000690064006C00650000000000</Binary> 
    </EventData> 
</Event> 
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
<System> 
    <Provider Name="ASP.NET 4.0.30319.0"/> 
    <EventID Qualifiers="49152">1325</EventID> 
    <Level>2</Level> 
    <Task>0</Task> 
    <Keywords>0x80000000000000</Keywords> 
    <TimeCreated SystemTime="2014-01-17T18:56:06.000000000Z"/> 
    <EventRecordID>1216080</EventRecordID> 
    <Channel>Application</Channel> 
    <Computer>xxxxxxxxxxxxxxxxxxxxxxxxxxx</Computer> 
    <Security/> 
</System> 
<EventData> 
    <Data>Failed to initialize the AppDomain:/LM/W3SVC/6/ROOTException: System.SystemExceptionMessage: Failed to create AppDomain.StackTrace: at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)InnerException: System.Runtime.InteropServices.COMExceptionMessage: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))StackTrace: at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone&amp; zone, StringHandleOnStack retUrl) at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence() at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.Evidence.GetHostEvidence[T]() at System.Web.Hosting.ApplicationManager.GetDefaultDomainIdentity() at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)</Data> 
</EventData> 
</Event> 
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
<System> 
    <Provider Name="ASP.NET 4.0.30319.0"/> 
    <EventID Qualifiers="49152">1325</EventID> 
    <Level>2</Level> 
    <Task>0</Task> 
    <Keywords>0x80000000000000</Keywords> 
    <TimeCreated SystemTime="2014-01-17T18:56:06.000000000Z"/> 
    <EventRecordID>1216080</EventRecordID> 
    <Channel>Application</Channel> 
    <Computer>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Computer> 
    <Security/> 
</System> 
<EventData> 
    <Data>Failed to initialize the AppDomain:/LM/W3SVC/6/ROOTException: System.SystemExceptionMessage: Failed to create AppDomain.StackTrace: at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)InnerException: System.Runtime.InteropServices.COMExceptionMessage: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))StackTrace: at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone&amp; zone, StringHandleOnStack retUrl) at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence() at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType) at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate) at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type) at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed) at System.Security.Policy.Evidence.GetHostEvidence[T]() at System.Web.Hosting.ApplicationManager.GetDefaultDomainIdentity() at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)</Data> 
</EventData> 
</Event> 
</Log> 

답변

1

VS 2013 업데이트 2RC로 업데이트하고 Azure 2.3 SDK를 설치하면 문제가 해결되었습니다. (아직 프로젝트를 2.3으로 업그레이드하지 않았습니다.)

1

그때 2.2을 다시 설치하고 모든 것이 잘 작동, SDK 2.2과 SDK의 이전 버전을 모두 제거했다.

+0

불행하게도 나를 위해 작동하지 않았다, 나는 모든 2010 년, 2012 년과 2013 SDK를 제거하고, 모든 푸른 라이브러리는 다음 2013 대에 대해 2.2 SDK를 설치하지만, 문제가 지속. – jaundice

1

나는 아직도 이유와 방법을 통해 연구하고 있지만 진전을 이루었습니다. 기존 솔루션 내에 새로운 클라우드 프로젝트를 추가하고 기존 프로젝트를 추가했습니다. 이전 클라우드 프로젝트를 참조 용으로 남겼습니다. 새로운 클라우드 프로젝트가 디버깅 가능하므로 이제 cdsef와 cscfg의 차이점을 조사 할 수 있습니다.

편집 : 불행히도 나는 약간 총을 뛰어 넘었습니다. 새로 생성 된 클라우드 프로젝트는 IIS Express로 IIS를 다시 전환하여 실패했습니다.

EDIT : 구성된 엔드 포인트 중 하나 (원래 4 개가 있음)를 제거하고 디버그 할 수있는 http/80 만 남겨서 문제가 ssl 또는 내부 엔드 포인트와 관련된 것으로 보입니다.

3

우리 프로젝트에도 같은 문제가 있습니다. 마이크로 소프트의 버그 리포트는 여기에 있습니다 :이 링크에서

https://connect.microsoft.com/VisualStudio/feedback/details/817341/vs-debugger-cannot-attach-to-azurewebrole-with-more-then-one-iis-endpointbinding-when-using-iis-reproducable#

이 문제의 주위에 (더러운) 방법이있다. MS가 곧이 문제를 해결할 수 있기를 바랍니다.

+0

이것은 후보자처럼 보입니다. 나는 연결할 표를 추가했습니다. – jaundice

2

Azure 에뮬레이터에 디버거를 연결하려고 시도하는 동안 Visual Studio가 계속 매달려있었습니다. 이것은 프로젝트의 SDK/개발 환경 업그레이드 이후였습니다.에뮬레이터에서 "상태가 비정상적"이라고보고하고 Visual Studio를 강제 종료하고 다시 시작해야했습니다.

<ServiceConfiguration osFamily="1"> 

을 내가 이제 푸른 에뮬레이터 및 Visual Studio가

<ServiceConfiguration osFamily="3"> 

로 변경 윈도우 8

에서 실행되는 실행중인에 대한 문제를 해결 : 그것은 ServiceConfiguration가 포함되어있어 문제가 있었다 밝혀졌다 나를.

+0

원래 osFamily를 구성하지 않았습니다. 나는 4와 3을 시도했지만 운이 없었다. – jaundice

+0

그리고 새 클라우드 프로젝트를 다시 만든 다음 필요한 설정을 복사하는 경우? – Maarten

+0

숫자가 의미하는 것을 설명하는 차트가 있습니까? 이 비슷한 문제가 있었고 cfg가 4로 설정되었습니다.이 스레드를 읽은 후 3으로 변경하면 문제가 해결됩니다. – Greg

1

내 사례는 매우 유사했습니다. osFamily = "1"을 사용하여 Visual Studio 2010 Azure 프로젝트를 만들었습니다. Visual Studio 2013을 설치 한 후 최신 Azure SDK (SDK 2.3)를 설치했습니다. Visual Studio 2013에서 프로젝트를 열었고 변환 작업을 수행했습니다.

디버깅없이 Visual Studio 2013 에서 프로젝트를 실행하면 성공적으로 실행됩니다. 디버그 모드 (F5)로 실행하려고하면 컴퓨 트 에뮬레이터를 시작하려고 시도 할 때 중단됩니다. 처음에는 osFamily 설정을 변경하지 않았지만 올바른 osFamily = 4로 변경하고 도움이되지 않았습니다. 에뮬레이터 로그를 보면 많은 것들이 황달의 게시물과 비슷했습니다. 내 역할은 건강에 좋지 않은 상태에서 시작되었습니다. 그것은 다른 것들을 할 것이고 "[Diagnostics] : 구성 업데이트 확인 중"의 끝없이 반복됩니다.

"에뮬레이터 사용"을 사용하도록 에뮬레이터 설정을 변경하는 것이 마침내 해결되었습니다. this article by Microsoft에서 설명한 바와 같이 Emulator Express는 Azure SDK 2.1부터 시작하여 2.3 이상 버전의 기본값입니다. 그러나 이전 프로젝트를 변환하면 설정을 "전체 에뮬레이터 사용"으로 유지합니다. 전체 IIS가 필요합니다. Emulator Express는 IIS Express를 사용합니다. 처음에는 차이를 만든 것이 IIS Express의 변화일지도 모른다고 생각했지만, 황달이 처음에는 IIS Express를 사용했기 때문에 도움이되는 에뮬레이터 익스프레스라고 생각했습니다. 전체 에뮬레이터가 아닌 에뮬레이터 익스프레스를 사용할 수 있는지는 확실하지 않지만 나를 위해 작동합니다.

Emulator Settings