IIS Express에서 ASP.NET MVC를 디버깅 할 때 액세스 거부 오류가 발생 함


102

ASP.NET MVC 3 프로젝트를 만들고 개발할 때 IIS Express를 웹 서버로 사용하고 있습니다. 디버깅을 시도하면 아래와 같은 오류 메시지가 나타납니다.

이 문제를 어떻게 해결할 수 있습니까?

'/'응용 프로그램에 서버 오류가 있습니다.

접근이 금지되어있다. 설명 :이 요청을 처리하는 데 필요한 리소스에 액세스하는 동안 오류가 발생했습니다. 요청 된 URL에 액세스하도록 서버가 구성되지 않았을 수 있습니다.

오류 메시지 401.2 .: 권한 없음 : 서버 구성으로 인해 로그온하지 못했습니다. 제공 한 자격 증명과 웹 서버에서 활성화 된 인증 방법을 기반으로이 디렉터리 또는 페이지를 볼 수있는 권한이 있는지 확인합니다. 추가 지원은 웹 서버 관리자에게 문의하십시오.


3
관리 권한없이 IISExpress를 실행하고 있습니까?
chandmk

2
그래서 잠시 동안 내 머리를 두드린 후 마침내 VS가 기본 페이지를 설정하지 않았고 분명히 IISExpress.exe가 폴더 목록을 제공하지 않기 때문에 그것이 분명하다는 것을 깨달았습니다.
Mark Allen

답변:


113

Visual Studio를 사용하는 경우 솔루션 탐색기 에서 프로젝트를 마우스 왼쪽 단추로 클릭 하고 속성 창 에서 Windows 인증 속성을 사용 으로 변경할 수도 있습니다.


2
이것은 Visual Studio 2012에만 국한되지 않으며 적어도 Visual Studio 2010에서도 만들 수 있습니다.
Loïc Lopes 2013 년

5
VS 2013에서 나를 위해 일했습니다.
kaybee99

2
또한 익명 인증을 비활성화해야합니다.
Glazed

1
솔루션 탐색기에서 솔루션 노드 아래의 프로젝트 이름을 클릭 한 다음 속성 창으로 전환하면 Windows 인증 속성이 활성화 됨
sairfan

1
속성 창에이 설정이 표시되지 않습니다. 나는 VS 2015 사용하고 있습니다
마크 Bonafe

99

이 문제의 원인은 IIS Express가 WindowsAuthentication을 허용하지 않기 때문입니다. 설정을 통해 활성화 할 수 있습니다.

<windowsAuthentication enabled="true">

C : \ Users [사용자 이름] \ Documents \ IISExpress \ config에있는 applicationhost.config 파일에 있습니다.


19
Visual Studio 2010 및 2012는 전역 설정이 기본값에서 변경되지 않도록 프로젝트
별로이

나는 그 설정을 시도하고 있습니다 .VS 2013 에서도이 오류가 산발적으로 발생하기 때문에 도움이되는지 알려 드리겠습니다.
Matt

2
% userprofile % \ documents \ iisexpress \ config \ applicationhost.config를 사용하는 것이 더 좋습니다. Mine was on D : (thanks Dan! danesparza.net/2014/09/… )
Jeramy Rutley

이것은 나를 위해 일한 유일한 솔루션입니다. 감사합니다!
Mohammad Anini 2016

VS 2017에서 이것을 시도했지만 작동하지 않았습니다. Jason이 게시 한 솔루션이 작동했습니다.
myroslav

73

나는 Jason의 대답을 사용했지만 속성에 들어가는 방법을 명확히하고 싶었습니다.

  1. 솔루션 탐색기에서 프로젝트 선택

여기에 이미지 설명 입력

  1. F4 속성을 가져 오려면 (오른쪽 클릭 속성과 다름)
  2. Windows 인증사용으로 변경

여기에 이미지 설명 입력


3
이를 철자하고 변경해야 할 F4 속성을 지정해 주셔서 감사합니다.
PeterDNCO

1
감사합니다! '익명 인증'도 '사용'으로 설정해야했습니다.
Mahesh

1
너무 감사합니다!
FunMatters

1
이쁘시 네요.
kosherjellyfish

1
VS 2015를 사용하고 있는데 존재하지 않습니다!
Mark Bonafe

18

IIS Express에서 호스팅 : 1. 솔루션 탐색기에서 프로젝트를 클릭하여 프로젝트를 선택합니다. 2. 속성 창이 열려 있지 않으면 엽니 다 (F4). 3. 프로젝트의 속성 창에서 : a) "익명 인증"을 "사용 안 함"으로 설정합니다. b) "Windows 인증"을 "사용"으로 설정합니다.


12

제 경우에는 파일을 열어야했습니다.

C:\...\Documents\IISExpress\config\applicationhost.config

나는 파일 안에 이것을 가지고 있었다.

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

방금 User=""부품을 제거했습니다 . 이게 어떻게 거기에 왔는지 정말 모르겠어요 ... :)

참고 : 끝에 다음과 같은 내용이 있는지 확인하십시오 applicationhost.config.

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

https://stackoverflow.com/a/10041779/114029 에서 살펴볼 수도 있습니다.

이제 예상대로 로그인 페이지에 액세스 할 수 있습니다.


1
나는 당신의 단계를 따랐지만 여전히 나를 위해 작동하지 않습니다. vs2010에서 열면 잘 작동합니다. 2013 년 대비 문제는 무엇입니까
GANI

@ user1016740이 문제를 해결하기 위해 따라야 할 가능성 / 경로가 너무 많기 때문에 잘 모르겠습니다. 여기에 설명 된 단계는 내 환경에서 문제를 해결했으며 이는 귀하의 환경과 다릅니다.
Leniel Maccaferri

8

제 경우에는 VS에서 내 앱의 이전 실행이 URL을 예약했습니다. 콘솔에서 실행하여 이것을 볼 수 있습니다.

netsh http show urlacl

이 예약을 삭제하려면 관리자 권한 콘솔 에서 실행했습니다 .

netsh http delete urlacl http://127.0.0.1:10002/

이 단계 에서 내 문제가 해결 되었음을 알았습니다 .

VS2013을 사용하고 있습니다.


한 번에 여러 포트에서 사이트를 실행하도록 applicationhost.config를 편집 한 경우 매우 편리합니다. .config에서 항목을 제거해도 netsh의 예약은 제거되지 않습니다. 고마워요.
Dusda

5

Administrative Mode이 오류를 제거 하려면 Visual Studio를 실행해야했습니다 .


3

나도 같은 문제가 있었고 마침내 극복 할 수 있었다.

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

다른 포트 번호를 선택 했고 모든 것이 잘되었습니다!


1

위의 어느 것도 나를 위해 일하지 않았습니다. 이것은 오늘 전에 저에게 효과적이었습니다. 그런 다음 랩톱에서 호스팅 연결을 만드는 작업을하고 있었고 무선 네트워크 연결과 인터넷 연결을 공유했음을 깨달았습니다.

내 문제를 해결하려면 :

제어판> 네트워크 및 인터넷> 네트워크 연결로 이동합니다.

가지고있을 수있는 보조 무선 네트워크 연결 (내 이름은 무선 네트워크 연결 2)을 마우스 오른쪽 버튼으로 클릭하고 '속성'을 클릭합니다.

상단의 '공유'탭으로 이동합니다.

'다른 네트워크 사용자가이 컴퓨터의 인터넷 연결을 통해 연결할 수 있도록 허용'상자를 선택 취소합니다.

확인> 적용을 누르십시오.

도움이 되었기를 바랍니다!


1

web.config 파일을 열고이 섹션을 찾아서 제거했습니다.

<authorization>
  <deny users="?" />
</authorization>

내 사이트가 올라 왔는데 인증에 문제가 있습니다 ..


좋습니다. 문제를 해결하는 데 도움이되었지만 이제 수정해야 할 다른 문제가 있습니다.
Jamshaid Kamran 19

0

IIS EXPRESS에서이 정확한 문제를 수정했습니다. 응용 프로그램 호스트 .config를 아래의 특정 위치 섹션으로 편집하여 수정했습니다. Visual Studio 2012에서 Windows 인증을 설정했지만 XML로 들어가면 다음과 같이 보입니다.

아래에 표시된대로 Windows 인증 태그를 추가해야합니다.

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>

0

Provider Hosted를 사용하여 SharePoint 용 간단한 앱을 만들려고 노력하면서이 문제로 어려움을 겪고 있습니다.

applicationhost.config를 살펴본 후 섹션에서 basicAuthentication이 false로 설정되었습니다. 내 시나리오에서 401.2를 넘기 위해 true로 변경했습니다. IIS Express 용 applicationhost.config를 찾는 방법에 대한 다른 링크가 많이 있습니다.


0

나는이 "완전한"대답을 어디서도 보지 못했습니다. 이 글을 게시 한 후 포트 번호 변경에 대한 것을 봤습니다.

Visual Studio의 프로젝트 속성에서 프로젝트 URL이 사이트 바인딩에 대해 IIS에서 사용되는 것과 동일한 URL 또는 포트에 할당되지 않았는지 확인합니다.

이에 대한 "이유"를 찾고 있지만, 가상 디렉터리를 만들 때 IIS와 Visual Studio의 IIS 익스프레스는 모두 동일한 디렉터리를 사용하고 Visual Studio는 새 가상 디렉터리 만 만들 수 있으며 수정할 수 없다는 것이 내 생각입니다. IIS가 사이트에 대한 바인딩을 적용 할 때 생성 한 모든 것.

이유에 대해 자유롭게 수정하십시오.


0

우리의 오류 페이지는 로그인 페이지 뒤에 있었지만 로그인 페이지의 컨트롤 중 하나에 오류가있어 무한 루프를 생성합니다.

문제가되는 페이지에서 모든 컨트롤을 제거하고 올바른 컨트롤을 찾아 수정할 때까지 하나씩 다시 추가했습니다.


0

제 경우에는 (ASP.NET MVC 4 응용 프로그램) Global.asax파일이 누락되었습니다. 느낌표와 함께 솔루션 탐색기에 나타납니다. 나는 그것을 교체하고 오류가 사라졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.