c# - windows 7 iis asp net




오류-IIS 메타베이스에 액세스 할 수 없습니다. (20)

  1. "devenv.exe"에 대한 바로 가기를 만듭니다.
  2. 바로 가기에 대해 "관리자 권한으로 실행"옵션을 선택하십시오.
  3. 짧게 깎기를 클릭하고 프로젝트를 다시여십시오.

Visual Studio 2012를 설치하고 솔루션을 열면이 양식에서 일련의 오류가 발생합니다.

웹 응용 프로그램 프로젝트 Foo는 IIS를 사용하도록 구성됩니다.
IIS 메타베이스에 액세스 할 수 없습니다. 컴퓨터의 IIS 웹 사이트에 액세스 할 수있는 충분한 권한이 없습니다.

각 웹 응용 프로그램에 대해이 정보를 얻을 수 있습니다. 내가 시도한 것들 :

  1. 관리자로 Visual Studio 실행
  2. aspnet_regiis.exe -ga MyUserName 실행
  3. aspnet_regiis.exe -i 실행 중

이것들은이 문제에 대한 일반적인 해결책 인 것처럼 보이지만 나는 그들과 아무런 성공을 거두지 못했습니다. 내가 할 수있는 다른 일이 있습니까?


@nologo의 answer 외에도 IIS를 사용해야했습니다. 그래서 나는

<UseIIS>True</UseIIS>

먼저 'False'로 설정하십시오.

  • 솔루션을 열고 프로젝트가로드 될 수 있도록했습니다.
  • 솔루션 및 Visual Studio의 해당 인스턴스 닫기
  • 'True'값을 다시 변경하십시오.
  • 솔루션을 엽니 다. 이번에는 어떤 오류 / 경고도받지 못했습니다. 내 프로젝트가 IIS 웹 사이트로 매핑되는 동안 Ctrl + F5 또는 F5를 눌러도 문제없이 실행할 수 있습니다.

IIS를 사용할 필요가없는 프로젝트에서 작업하는 경우이 오류와 함께 프로젝트를 여는 방법은 언로드 된 프로젝트를 마우스 오른쪽 단추로 클릭하고 편집을 클릭하여 다음을 검색하는 것입니다.

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>

USEIIS를 false로 설정합니다.

<UseIIS>False</UseIIS>

변경 사항을 저장 한 후 마우스 오른쪽 버튼을 클릭하여 프로젝트를 다시로드하십시오.


Visual Studio 명령 프롬프트를 열고 아래 명령을 입력하고 실행하십시오.

aspnet_regiis -ga machinename\ASPNET

위의 명령을 실행 한 후 IIS 재설정하고 문제를 해결하는 응용 프로그램을 테스트합니다.

위의 명령으로 문제가 해결되지 않으면 visual studio command prompt:- 에서 아래 명령을 실행하십시오 visual studio command prompt:-

aspnet_regiis -i

또는 위의 명령을 Windows 명령 프롬프트에서 실행할 수도 있습니다

시작 메뉴로 가서 실행을 열고 입력 한 후 OK 클릭하십시오.

%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe –I

그 후 IIS를 재설정하고 문제를 해결하는 응용 프로그램을 테스트하십시오.


Windows 기능 목록에서 IIS 도구를 실제로 선택 해제하여이 문제를 해결할 수 있습니다. 그런 다음 Visual Studio 2013 설치를 복구하고 웹 개발자가 선택되어 있는지 확인하십시오. VS가 잘 작동하는 IIS 8이 설치됩니다.



관리자 명령 프롬프트에서 Windows 81에서 다음을 사용하십시오.

icacls "C:\Windows\System32\inetsrv\config" /t /grant "IIS AppPool\DefaultAppPool":(R)

그런 다음 VS로 돌아가 실패한 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 다시로드를 선택하십시오.

크레디트 : IIS7 권한 개요 - ApplicationPoolIdentity


나는 또한 비슷한 문제가 있었다. 내 솔루션은 누군가가 유용하다고 생각하는 답변 "관리자 권한으로 실행"확장입니다.

VS2012를 실행하고 거의 마우스 오른쪽 버튼을 클릭하고 관리자 권한으로 실행해야했습니다. 나는 그 대신에 지쳐있어, 그 대신에 바로 가기의 속성에 들어가서 고급을 클릭 한 다음 "관리자 권한으로 실행"옵션을 클릭했습니다. 이제 VS2012 는 바로 가기에서 열 때마다 항상 관리자 권한으로 실행됩니다.

바로 가기 비트가 중요합니다. 나는 프로젝트를 분기하고 새로운 로컬 폴더로 분기를 다운로드했다. 그런 다음, 바로 가기에서 열었을 때 아무런 문제가 없었습니다. 그러나 폴더에 직접 들어가서 바로 가기없이 로컬에서 프로젝트를 실행하면 관리자 권한으로 실행 되지 않고이 오류가 발생합니다.

일단 평소처럼 VS2012를 열었 으면 File / Open / Project를 사용하여 다시 아무런 문제가 없습니다. (왜냐하면 나는 관리자로 출마했기 때문). 하지만 Windows 파일 관리자를 사용하여 솔루션을 열면 관리자 권한으로 실행되지 않았습니다.

다른 제안은 다소 극단적 인 것처럼 보일 수 있지만 이것은 매우 간단하므로 먼저 시도해 보겠습니다.

희망이 도움이되었다.


나는 오늘 나에게 똑같은 문제가 생겼다. 그리고 나는 그것이 성가신 것을 알았다. 동일한 IIS에서 이미 개발중인 다른 두 개의 웹 사이트가 있지만 새 사이트를 만들 수는 없었습니다. 이상하지만 나는 이것을했다.

  • IIS에서 사이트 삭제
  • 새 사이트 만들기, 이름을 "new_site"지정
  • 사이트 이름 자체가 아닌 응용 프로그램 풀을 선택하십시오. 따라서 기본 설정을 망칠 수는 없습니다.
  • 동일한 컴퓨터에서 IP를 실행하는 경우 IP를 "할당 해제 된"상태로 유지하십시오.
  • 사용하지 않는 포트를 제공하십시오.
  • VS 실행 파일 바로 가기를 마우스 오른쪽 단추로 클릭하여 Visual Studio를 "관리자 권한으로 실행"으로 실행합니다.
  • 너 끝났어!

작동 이후에 언급 한 것 이외의 다른 것을 끄거나 다시 설치할 필요가 없습니다.

아무도 저처럼 똑같은 문제가 있었는지 알려주고 같은 방법으로 해결하십시오. 나는 그것이 문제가 아니라 Visual Studio가 열지 않는 localhost에서 웹 사이트를 만드는 잘못된 방법이라고 생각합니다.

이것이 초보자들에게 도움이되기를 바랍니다.


나는 위의 모든 것을 시도했다. 신용은 위의 모든 응답으로 이동합니다. 모든 제안을 독자적으로 시도해 본 결과 제안 된 조합을 내 순서대로 조합했습니다. 내 문서 폴더는 공유 드라이브에 있습니다. subst / IISExpress 항목은 같은 보트에 있지 않으면 적용 할 수 없습니다.

  • 관리자로 실행되도록 VS 구성
  • 프로그램 추가 / 제거, Windows 기능을 통해 IIS 제거
  • 재부팅
  • WinRAR 또는 관리자 및 보관 C:\windows\system32\inetsrv\
  • cmd와 rmdir /sc:\windows\system32\inetsrv\ 를 실행하여 마지막 설치의 모든 흔적을 완전히 제거하십시오. 상승 된 cmd 프롬프트는 나중에 열어 둡니다.
  • IIS 6 메타베이스 호환성을 사용하여 IIS 다시 설치 (필요 없음)
  • 기본 AppPool 및 기본 웹 사이트를 그대로 두십시오 (이전에 둘 다 삭제 했음).
  • Ran C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ga MYDOMAIN\scottt732
  • Ran C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

또한 내 문서 폴더가 공유 드라이브에 있기 때문에 IIS Express 문제가 발생했습니다. 나는 IIS Express를 사용 / 사용하지 않지만 Visual Studio는 그것에 대해 불평합니다.

  • 상승 된 cmd 프롬프트에서 subst U: c:\Temp . C:\Temp\Documents\ 만들고 U 드라이브에서 IISExpress 폴더를 복사했습니다.
  • HKCU\Software\Microsoft\IISExpressC:\Temp\Documents\IISExpress 와 함께 CustomUserHome 키 생성
  • 이를 통해 Visual Studio에서 웹 프로젝트를 열고 속성을 편집 할 수있었습니다. 필자는 사용자 파일에 웹 서버 설정을 저장하는 프로젝트를 조정하고 사용자 지정 URL을 사용하도록 조정했습니다 (필요한 경우 확실하지 않음).
  • 내가 다시 시작할 때마다 subst 명령을 실행할 필요가 없습니다. 상관 없어요.

수건을 3 번 던지고 약 6 시간을 소비 한 후 Visual Studio (2015 업데이트 2)에서 웹 프로젝트를 열 수 있습니다.


나는이 문제가 있었는데 증상은 같았지 만 문제는 "내 문서"폴더를 네트워크 공유에 설정하고 공유에 액세스 할 수 없다는 것이 었습니다.

루트 문제는 % USERPROFILE % \ Documents에있는 IIS 구성 파일에 액세스 할 수 없다는 것입니다. "내 문서"폴더 위치를 변경하면 (reg 값이 수정 됨) 다시 작동하기 시작합니다.

나는 이것이 당신이 만날 수있는 일반적인 시나리오가 아닐지 모르지만, 같은 증상을주기 때문에 여기에 게시했습니다.


나는이 오류로 이어지는 두 가지 분리 된 유형의 문제를 가지고 있으며 공유 할 것이라고 생각했습니다 ...

1. The directory was on an network share and due to UAC restrictions, was 
   unable to be accessed -- even when running as an admin.
2. The directory was on a drive that didn't exist...

이 두 가지 모두 MS에서 문서 또는 내 문서 디렉토리에 물건을 넣는 불행한 (imo) 선택에서 비롯되며, 실제로는 치명적인 오류 메시지와 결합됩니다. 위의 두 경우 모두 근본적인 문제는 IISExpress 구성 파일 이 내 문서에 들어 있으며 존재하지 않거나 액세스 할 수 없었습니다.


내 메시지에서 "IIS 메타베이스에 액세스 할 수 없습니다"라는 불평 옆에 "<IISUrl>http://localhost:6416/</IISUrl>" 액세스 할 수 없다는 내용도 포함되어 있습니다. 언로드 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 편집을 클릭 한 다음 "<IISUrl>http://localhost:6416/</IISUrl>" 주석 처리하십시오. 다시로드하면 작동합니다. 이것은 관리자가 해당 주소에 액세스 할 수있는 권한이없는 것과 관련이 있습니다.


방금 오늘이 문제가 있었는데 VS를 '관리자 권한으로 실행'으로 열지 않은 것으로 나타났습니다. 이렇게하고 나면 서비스를 게시 할 수있었습니다.


오늘이 문제를 해결하고 프로젝트 파일에서 IISUrl을 제거하여 문제를 해결했습니다.

  1. 프로젝트를 오른쪽 클릭하십시오.
  2. 수정을 클릭하십시오.
  3. 다음 행을 삭제하십시오.

     <IISUrl>http://localhost:xxxxx </IISUrl>
    
  4. 프로젝트 다시로드

  5. 이제 프로젝트> 속성> 웹을 마우스 오른쪽 단추로 클릭하고 로컬 IIS 웹 서버 사용 (IIS Express 사용 선택 취소)을 선택하고 가상 디렉터리 만들기 단추를 클릭하여 새 IIS 가상 디렉터리를 추가합니다.

이 문제를 뛰어 넘어 나 같은 문제가 생길 수도 있습니다. 전에 "해결"하고 정전 후 컴퓨터가 추락했는데 왜 레지스트리 설정이 되돌려 졌는지는 모르지만 그것은 내 문제의 근원 입니다.

  1. 나는 관리자로 모든 실행을 시도했다.
  2. 모든 IIS / IIS가 다시 설치됩니다.
  3. 다양한 "해킹"

레지스트리를 다시 고칠 필요가있게되었습니다.

  1. 관리자 권한으로도 regedit를 열 수 없습니다 (문제는 gpedit.msc 관리자 템플릿이 아니기 때문에 레지스트리에 액세스해야 함).

  2. 바탕 화면의 UnHookExec.inf

UnHookExec.inf를 저장하고 마우스 오른쪽 버튼을 클릭하고 설치를 선택하여 설치하십시오. 파일을 설치하면 팝업 또는 알림 상자가 표시되지 않습니다. http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html

  1. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell 폴더 \ 개인 이 존재하지 않는 파일 공유를 가리키고 있습니다. 로컬 경로로 변경하면이 문제가 해결됩니다. - Pasi Savolainen, Jul 14 '14, 8:41

( \\cs2data\home\stickelt\my documents 에서 c:\dev )

이제는 모두 좋았고 Visual Studio는 15 개의 프로젝트로 솔루션을 열고 IIS에 연결하여 iis 메타 데이터에 액세스 할 수 없다는 불평을하지 않았습니다.

나는 지금까지 아무도이 일을 한 적이 없었습니다. 많은 사람들이이 문제를 겪었습니다. (많은 사람들이 오랫동안 여기에 있었고, 어떤 사람들은 다른 컴퓨터의 클론을 가지고있었습니다. 많은 사람들이 다른 도메인에 있습니다.)


이 키를 변경하면 저에게 효과적이었습니다.

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ 사용자 셸 폴더 \ 개인

위치가 존재하지 않았습니다.


이것은 "모든 오류가이 메시지로 이어지는"유형의 버그 중 하나와 같습니다.

내 앱 풀은 방금 꺼졌다. 나는 그것을 되돌 렸고 모든 것이 잘 작동했다.


프로젝트의 루트 디렉토리로 이동하여 다음 파일을 찾으십시오.

YourProjectName.csproj.user - 내부에 UseIISExpressfalse 로 설정되어 있는지 확인하십시오.

<UseIISExpress>false</UseIISExpress>


그것만으로도 문제가 해결되지 않으면 다음을 시도해보고 다시 시도하십시오.

YourProjectName.csproj - 기본 프로젝트 파일 안에 UseIISUseIISExpress 가 모두 false 로 설정되어 있는지 확인하십시오.

<UseIIS>True</UseIIS>
<UseIISExpress>false</UseIISExpress>


이들을 변경 한 후에 프로젝트를 다시로드 할 수있었습니다.

참고 : 다른 답변에서 언급했듯이 VS를 관리자로 실행해야합니다.


Windows 8 Pro :

%systemroot%\inetsrv\config

Windows 7 및 8.1 및 10

%systemroot%\System32\inetsrv\config 

(여기서 %systemroot% 는 일반적으로 C:\Windows )

Windows 탐색기에서 위의 해당 위치로 이동하십시오. 다음과 같은 팝업으로 액세스가 차단됩니다.

"이 폴더에 대한 액세스 권한이 없습니다. 계속해서이 폴더에 대한 액세스 권한을 유지하십시오"

이 폴더에 대해 '계속'을 클릭하고 아래에 내보내기 폴더를 클릭하십시오. 바로 가기를 "Run as me"(도메인 및 로컬 관리자의 구성원)로 변경하여 솔루션을 열고 배포 할 수있었습니다.





iis