2013-06-12 3 views
3

나는 이것이 아마도 어리석은 무엇인가라는 것을 알고있다. 그러나 나는 이것을 알아 내기 위해 2 시간 동안 google을 찾고 있었다.Visual Studio 2012에서 Azure 웹 역할을 어떻게 디버깅합니까?

Visual Studio에서 디버그하고 싶은 새로운 테스트 Azure 앱이 있습니다. 시작 프로젝트를 웹 역할 (MVC) 프로젝트로 설정하면 VS에서 중단 점을 지정할 수 있지만 에뮬레이터에서는 실행되지 않으므로 Azure 호출이 모두 실패합니다.

시작 프로젝트를 Cloud 프로젝트로 설정하면 에뮬레이터가 시작되고 Visual Studio에서 디버깅이 끝나고 웹 역할이 실행되지 않습니다.

무엇이 여기에 있습니까? 내 웹 페이지를 시작하고 에뮬레이터에 계속 액세스하려면 어떻게합니까?

(측면 노트 .. 왜 거기 비주얼 스튜디오 2012 태그 ??)

답변

1

내 Azure SDK를 모두 설치 해제했다가 다시 설치했습니다. 아무 소용이 없습니다.

http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/07fe087e-4ac3-4c4f-bd62-4fccff4afd45

The ACL on the Windows Azure registry entries were not in "canonical order". 
All you have to do is fix that and this error goes away. 
These are the steps I took: 

1.) regedit, navigate to HKLM\Software\Microsoft\Windows\Windows Azure 

2.) Right-click, choose "Permissions". You will get a warning that the 
    security information is incorrect and you get a button labelled "Re-Order". 
    Click this and the security information then shows up as normal. 

3.) Follow the same steps for the Windows Azure AppFabric and Windows Azure Emulator 
    registry entries in the list after the Windows Azure entry. 

Problem Solved! 

참고 :

이 링크는

Debugging Azure: Error attaching the debugger to the IIS worker proccess는 곳이 링크를 알려준 것이 실패의 원인이 된 오류를 찾아 내게 말했다 Windows \ Windows Azure가 아닌 HKLM \ Software \ Microsoft \ Windows Azure에서 키를 찾았습니다.

2

이 직접 질문에 대답하지 않지만, 난 항상 내 프로젝트 에뮬레이터의 외부에서 실행 있는지 확인하십시오. 그 밖의 것이 없다면 이는 개발 효율성을 크게 높입니다.

는 푸른의 문제가 실패 호출을 방지하기 위해 사용할 수있는 하나의 아주 기본적인 연습 (예 : 유니티 또는 다른 사람과 같은) 의존성 주입 프레임 워크를 사용하고 IConfigurationManager 같은 몇 가지 인터페이스를 구현 모두 LocalConfigurationManagerAzureConfigurationManager를 만드는 것입니다, Azure에게 인스턴스 번호 나 설정 값 등을 물어볼 필요가 있다면 LocalConfigurationManager은 단지 하드 코딩 된 숫자/설정을 반환 할 수 있고, 실제 AzureConfigurationManager은 실제로 Azure를 호출합니다.

트릭은 Web.Debug.Config 파일과 Web.Prod.Config 파일을 사용하거나 (또는 ​​단지 #IF DEBUG C# 프리 컴파일러 문을 사용하여) 빌드 구성에 따라 구현을 변경하는 것입니다.

+0

또한 디버거를 w3wp.exe 프로세스에 연결해 보셨습니까? – Mark

+0

그리고 테이블 스토리지를 사용한다면? 에뮬레이터가 필요합니다. –

+0

당신은 푸른 에뮬레이터에서 웹 응용 프로그램을 실행할 필요가 없습니다. 저장소 에뮬레이터를 시작해야합니다. 간단합니다. – Mark

2

방금 ​​MVC 웹 역할이있는 Azure 프로젝트를 만들었으며 아무런 문제없이 컨트롤러 작업에서 중단 점을 맞출 수있었습니다. 확인할 사항 :

  1. RoleEntryPoint에서 파생 된 클래스가 포함 된 MVC 프로젝트에 WebRole.cs 파일이 있습니까?
  2. MVC 프로젝트를 나타내는 Azure 프로젝트의 역할 폴더에 노드가 있습니까?
  3. Azure 프로젝트를 실행할 때 Compute and Storage 에뮬레이터 아이콘이 작업 표시 줄의 알림 영역에 표시됩니까?
  4. Azure 프로젝트의 ServiceDefinition.csdef 파일에 MVC 프로젝트 이름과 일치하는 특성을 가진 웹 역할 노드가 있습니까? 빠른 테스트는 MVC 웹 역할로 새로운 푸른 프로젝트를 만들어보십시오으로

WebRole 이름 = "MvcWebRole1"vmsize는 = "작은"

는 반환 단일 작업으로 컨트롤러를 추가 보기 및 거기에 중단 점을 넣어. 그런 다음 Azure 프로젝트를 "스타트 업 프로젝트"로 설정하십시오. 모든 것이 올바르게 작동하면 Azure 프로젝트를 디버깅 할 때 중단 점에 도달해야합니다.

+0

내 환경에 뭔가 있어야한다. . 내 작업 PC에서는이 작업이 실패했지만 집에 돌아와 노트북에서 시도한 결과 정상적으로 작동했습니다. Azure를 제거하고 다시 설치해야합니다. – Scottie