2010-12-17 3 views
2


저는 Win2008R2 시스템에 새로운 VS2010을 설치했습니다.
내가 WCF 서비스 프로젝트를 디버깅 할 때이 오류를 받기 시작 :웹 관련 프로젝트에서 Visual Studio가 계속 충돌합니다.

. "읽거나 보호 메모리를 쓰려고 시도를이 종종 표시 다른 메모리가 손상되었음을 입니다."

일주일 후 웹 사이트를 개발하기 시작했을 때 일관성이 생겼습니다. 디버깅 할 수 없습니다. 스택 덤프 읽 Microsoft.VisualStudio.WebHost.Server.OnSocketAccept (객체 acceptedSocket)에서 Microsoft.VisualStudio.WebHost.Host.ProcessRequest (연결 CONN)에서

하여 System.Threading 에 있습니다. System.Threading.QueueUserWorkItemCallback에서 System.Threading.ExecutionContext.Run에서 QueueUserWorkItemCallback.WaitCallback_Context (객체 상태) (ExecutionContext에 의 ExecutionContext, ContextCallback이 콜백 상태 개체 ignoreSyncCtx, 부울 ) System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()에서 System.Threading.ThreadPoolWorkQueue.Dispatch() 에서 .System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 는

나는 온라인 검색을 시도, 일부는 해제하는 것이 좋습니다 디버깅 옵션에서 "JIT 최적화 억제"-이 dos는 차이를 만드는 것처럼 보이지 않습니다.

분명히 문제는 내장 된 웹 서버 때문입니다. 하지만 내가 뭔가 잘못하고있는거야? 내가 할 수있는 일이 있습니까? 또는 알려진 버그입니까? 시간에 대한

감사합니다,

가이

업데이트 12/31 : 오늘은 원래 VS2010의 웹 서버로 대체 CassiniDev를 사용하여 시도 - 동일한 결과. 내 의심은 VS2010, Windows Server 2008R2 및 아마도 64 비트 OS라는 사실 사이에 내부적 인 충돌이 있다는 것입니다. 나는 디버그 서버로 IIS를 사용하기로 바꿨다. 이것은 약간의 성가신 부작용과 함께 작동하는 것으로 보인다.

내 결론 : dev 컴퓨터로 64 비트 서버 시스템을 사용하지 마십시오. 32 비트에서 개발 - 64 비트로 전개하십시오.

부작용 : Microsoft의 품질 보증 테스트를 수행하지 않는 시나리오가 있습니다.

+0

ASP.NET Web Develoment Server (Casini) 또는 IIS를 실행하고 있습니까? 어느 한 명을 사용하고 있습니까? 다른 한 명을 시도해 보셨습니까? –

+0

Web Development Server를 사용하고 있으며 IIS로 전환 할 수있는 동안이 충돌을 일으키는 원인과 해결 방법을 알고 싶습니다. –

+0

현재, IIS에서 실행되는 동안 이것이 발생하지 않는다는 것을 확인할 수 있습니다. 나는 여전히 이것을 해결하고 싶다. –

답변

2

글쎄, 여기 슬픈 진실이 있습니다. 나는 마이크로 소프트에서 일하는 사람과 똑같은 기술을 가지고 검증했습니다. 방금 카시 니 버그를 방아쇠를 당겼습니다. 그는 VS2010 SP1 베타 버전을 설치하려고 제안했습니다. 코드는 프로덕션 환경에서 만기가 되었기 때문에 할 수 없습니다. 그의 또 다른 제안은 IIS Express입니다. MS는 IIS Express로 사람들을 이동시키고 웹 플랫폼 설치 프로그램의 일부로 제공하기 때문에 카시니 버그를 막아서 너무 많은 시간을 소비하지 않을 것이라는 의구심을 나타냅니다.

2008 년 서버를 사용하고 있었기 때문에 IIS를 추가 했으므로 (1 분 미만 소요) 가상 디렉터리를 만들었습니다 (VS 프로젝트 페이지에서 버튼 하나만 누르면됩니다) 이제 디버깅이 성공적으로 완료되었습니다. IIS에서. 원하는 결과가 아니지만 항상 원하는 것을 얻을 수있는 것은 아닙니다.

0

.Net Framework 3.5를 설치하면이 정확한 문제가 해결되었습니다.

희망 하시겠습니까? 죄송합니다. 정확히 cassini가 잘못되어 가고있는 것에 관해서는 더 이상의 통찰력을 제공 할 수는 없지만, 라이브러리 나 2 개가 누락 된 것으로 의심됩니다.

====은

업데이트 : 는 (첫 번째 요청에 더 이상 충돌) 도움이되지 갖고있는 것 같아요,하지만 추가 사용에 저도 같은 오류가 작물 다른 곳 건너 한)

.

====

업데이트 : 이제는 더 이상 재생할 수 없습니다. 행운을 빈다, 발견하면 더 이상 게시하십시오!

+0

FW 3.5.1이 1 일 이후에 설치되었으므로 : ( –

+0

그래, 다시 사용하면 충돌이 다시 발생합니다.정말하고 싶은 모든 일은 IE6에서 내 앱을 테스트 할 VM을 만드는 것입니다. – Matt

0

내 관심을 끄는 것은 Win2008R2 및 카시니입니다.

나는 추측하고 있지만 권한 문제 일 수 있다고 생각합니다.

Win2008R2 컴퓨터가 일반 개발자 컴퓨터 (평균 개발자 컴퓨터가 XP/Vista/Win7 등)보다 많이 잠글 수 있습니다.

아마도 Cassini는 Win2008R2에서 사용자 계정으로 실행될 때 그 일을 할 수있는 충분한 권한이 없습니다. 아마도 포트를 열 수 없습니까? 그러나 항구 문제로 인해 충돌이 발생할 것으로 생각하지 않습니다. 아니면 필요로하는 임시 디렉토리에 액세스 할 수 없습니까?

아마도 사용자 계정이 로컬 보안 정책에서 디버깅 할 수있는 권한이 거부 되었습니까? 하지만 나는 관리자가 아니기 때문에 이것에 대해 확신하지 못합니다.

아마도 관리자로서 Visual Studio를 시작해보십시오 (문제를 조사하는 데 도움이되도록).

사이트를 디버깅하지 않고 시작하면 디버깅 프로세스에 대한 사용 권한 문제인지 확인할 수 있습니다.

이전에 Windows 7과 Cassini에 대해 이야기 한 적이 있습니다. http://msmvps.com/blogs/rfennell/archive/2009/01/24/problem-hosting-wcf-using-cassini-on-windows-7.aspx하지만 수정되지 않았을 수 있습니다.

+0

내 사용자는 시스템의 관리자이자 단독 사용자입니다. 그럼에도 불구하고 Visual Studio에서 Ctrl + Shift + Run As Administrator를 시도했습니다. 충돌이 더 빨리 발생했습니다 (몇 초 전에 탐색 할 수 있음 - 지금은 충돌이 발생 함) –

관련 문제