2013-02-07 2 views
0

저는 ASP.NET MVC (여전히 v2) Azure 웹 애플리케이션을 개발 중입니다. MVC 코드 자체를 단계별로 실행해야하는 문제가 발생했습니다. 이 작업을 수행 할 수 있지만 단계별로 코드를 검사 할 수 있어야하므로 디버거에서 최적화되지 않은 버전 ("로컬 또는 인수 ... 값을 가져올 수 없음"메시지가 표시되지 않음)이되어야합니다. .Azure Compute Emulator에서 ASP.NET MVC 시스템 코드를 디버그합니다.

최적화를 우회하는 표준 방법 (http://blogs.msdn.com/b/sburke/archive/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source.aspx)은 Compute Emulator에서 실행되지 않습니다.

또한 System.Web.Mvc 프로젝트의 로컬 디버그 빌드를 만들어이 작업을 시도했지만 Compute Emulator에서 시작하려고하면 웹 역할이 중단됩니다.

그래서 ... 다음 중 하나에 어떤 도움이 많이 주시면 감사하겠습니다 :이 시스템 DLL의 코드 최적화를 무시할 수 있도록

비주얼 스튜디오 (2010 년)에 푸른 웹 응용 프로그램을 실행합니다.

또는이 푸른 웹 응용 프로그램에서 참조 할 수 있도록 로컬 시스템 디버그 빌드를 만들기

는 계산 에뮬레이터에서 디버깅.

답변

0

Azure Compute Emulator에서 문제가 발생하면 IIS Express를 사용하여 MVC 프로젝트를 실행할 수 있습니다. 마우스 오른쪽 버튼을 클릭하고 디버그/새 인스턴스 시작을 선택하십시오.

+0

제안 해 주셔서 감사합니다. 아무도 할 수 없었습니다. 리팩토링을 많이하지 않아도이 웹 앱에서 작동하지 않는 것처럼 보입니다. Azure 관련 로깅 및 스토리지가 우선 사용됩니다. – gruve

0

전적으로 컴퓨팅 에뮬레이터에서 디버깅하는 동안 최적화되지 않은 ASP.NET 코드를 얻을 수있었습니다. MSDN (http://msdn.microsoft.com/en-us/library/9dd8z24x%28v=vs.100%29.aspx) 및 다른 곳 (http://martin.bz/blog/asp-net-mvc-source-debugging-the-easy-way)에서 설명한 기본 접근 방식은 JIT 컴파일러가 DLL과 동일한 디렉터리에서 최적화하지 않도록 지시하는 .ini 파일을 배치하는 것입니다.

첫 번째 과제는 그 위치를 파악하는 것이 었습니다. 마침내 Compute Emulator UI에서 로그를보고 어디에서 DLL (이 경우 System.Web.Mvc)을로드했는지를 알기 위해 마침내 날이 생겼습니다.

두 번째 과제는 .ini 파일을 가져 오는 것이 었습니다. Windows 탐색기는 파일에 직접 액세스하지 못하는 어셈블리 캐시를 보는 다른 방법을 사용하기 때문에 작동하지 않았습니다. 내가 읽은 게시물 중 하나는 명령 프롬프트를 사용하면 액세스 권한이 주어질 수 있다는 것을 상기시켜줍니다. 마지막 단계는 명령 프롬프트에서 .ini 파일을 어셈블리 디렉터리로 옮길 수 없으면 명령 프롬프트를 admin으로 실행해야한다는 것을 알게되었습니다.

일단 디버깅하는 동안 변수를 볼 수있게되면 버그가 어디에 있는지 빠르게 알 수있었습니다.

관련 문제