Visual Studio 2010 (관리자), Windows 7 x64에서 IIS 7을 실행하고 있습니다. 디버깅없이 IIS 7에서 ASP.NET 웹 사이트를 실행할 수 있지만 F5를 눌러 디버그하면 다음과 같은 결과가 나타납니다.
웹 서버에서 디버깅을 시작할 수 없습니다. ASP.NET 디버깅을 시작할 수 없습니다. 디버깅하지 않고 프로젝트를 시작하면 더 많은 정보를 얻을 수 있습니다.
불행히도 도움말 링크는 나를별로 돕지 않으며 커다란 사물의 나무로 이어집니다.
다음을 확인했습니다.
-
보안 요구 사항 — 전에 특별한 작업을 수행해야했던 기억이 없습니다. IIS7의 작업자 프로세스는 w3wp.exe입니다. ASPNET 또는 NETWORK SERVICE로 실행중인 경우 디버그하려면 관리자 권한이 있어야합니다. 여기서 변경해야하는지 어떻게 알 수 있습니까?
-
웹 사이트 속성 페이지> 시작 옵션> 디버거> ASP.NET이 선택됩니다. 사용자 지정 서버 사용은 사이트의 URL로 설정되어 있습니다 (디버깅없이 잘 작동 함).
-
에서 디버깅이 활성화됩니다
web.config
. -
응용 프로그램이 ASP.NET 3.5를 사용하고 있습니다 (결국 4.0으로 이동하고 싶지만 처리 할 마이그레이션이 있습니다).
-
응용 프로그램 풀 : .NET AppPool 분류 (DefaultAppPool 시도도 함).
다음에 확인할 수있는 아이디어가 있습니까?
IIS, VS를 설치하고 웹 사이트를 만들고 테스트를 시작하는 것이 그렇게 어렵지 않을까요?
미리 감사드립니다.
답변
IIS로 이동하여 사용중인 앱 풀이 시작되었는지 확인하십시오. 많은 경우 앱 풀을 종료하는 오류가 발생합니다. 마우스 오른쪽 버튼을 클릭하고 시작하기 만하면됩니다.
답변
범인은 IIS Url Rewrite 모듈이었습니다. 기본 홈 URL을 가질 수 있도록 Default.aspx ( 웹 사이트 의 시작 페이지 로 설정 됨)에 대한 호출을 사이트 의 루트로 리디렉션하는 규칙을 정의했습니다 . 그러나 분명히 VS는 이것에 문제가 있었고 혼란스러워했습니다. 이 문제는 Helicon ISAPI_Rewrite를 사용할 때 발생하지 않았으므로 확인하지도 않았습니다.
나는 완전히 새로운 웹 사이트를 처음부터 만들고 프로젝트 / 파일을 내 솔루션에 조금씩 이식하고 이것을 발견 할 때까지 web.config를 다시 빌드했습니다! 글쎄, 적어도 지금은 .NET 4.0을 사용하는 약간 더 깨끗한 사이트를 가지고 있습니다 (지금까지는 벽에 부딪히지 않을 것입니다). 그러나 얼마나 고통 스럽습니까!
답변
Visual Studio는 시작할 때 (어떤 이유로 든) URL에 액세스를 시도합니다.
/debugattach.aspx
예를 들어 .aspx
파일을 다른 곳에서 리디렉션 (또는 포착)하는 재 작성 규칙 이있는 경우이 오류가 발생합니다. 이 솔루션은 사용자의 시작 부분으로이 부분을 추가하는 것입니다 web.config
의 <system.webServer>/<rewrite>/<rules>
섹션 :
<rule name="Ignore Default.aspx" enabled="true" stopProcessing="true">
<match url="^debugattach\.aspx" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="None" />
</rule>
이렇게하면이 특정 요청을 포착 하고 아무것도 하지 않으며 가장 중요한 것은 실행을 중지하여 다른 규칙이 실행되지 않도록합니다. 이것은 강력한 솔루션이므로 프로덕션을 위해 구성 파일에 보관하십시오.
답변
다른 사람들을 위해 제 경우에는 네트워크 리소스 공유에 액세스하기 위해 Windows 자격 증명을 사용하도록 응용 프로그램 풀을 구성했습니다. 솔루션을 마지막으로 디버깅 한 이후로 Windows 암호를 재설정했습니다. 앱 풀 및 bada bing에 저장된 비밀번호 변경.
답변
ApplicationPool Identity가 사용자 지정 계정으로 설정되고 컴퓨터의 암호가 변경된 경우 암호를 업데이트해야합니다.
답변
내 시나리오의 경우 web.config의 httpErrors 섹션이 다음과 같이 설정되었습니다.
<httpErrors mode="Custom">
“웹 서버에서 디버깅을 시작할 수 없음”문제가 발생했습니다. “DetailedLocalOnly”의 이전 값으로 다시 설정하면 문제가 해결되었습니다. 좀 더 깊이 파헤쳐 보면 실제로 401 오류 설정이 원인이라는 것을 알았습니다.
<httpErrors mode="Custom">
<error statusCode="401" prefixLanguageFilePath="" path="/masterpages/500.html" responseMode="ExecuteURL" />
<httpErrors mode="Custom">
401 오류 줄을 주석 처리하면 문제도 해결되었으므로 사용자 지정 오류 처리를 유지하고 디버깅을 시작할 수 있기 때문에 문제를 해결했습니다.
왜 이런 일이 일어나는지 아직 모르겠습니다.
답변
Plase 검사 응용 프로그램 풀. 중지 된 경우. 다시 시작하십시오.