웹 응용 프로그램 프로젝트 […]가 IIS를 사용하도록 구성되었습니다. 웹 서버 […]를 찾을 수 없습니다.


285

솔루션 파일에 솔루션을 열 때 "사용할 수없는"웹 프로젝트가 있습니다. 웹 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트를 다시로드하면 다음 오류가 발생합니다.

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

이 웹 응용 프로그램에 대한 가상 디렉터리를 수동으로 설정하지 않았습니다.

동료마다 Visual Studio에서 가상 디렉터리를 만들라는 메시지가 표시되지만 프롬프트가 표시되지 않습니다.

개발자 컴퓨터에 IIS를 설치하기 전에 VS2010을 설치했습니다.

내 개발 머신 설정은 다음과 같습니다.

  • 윈도우 7 엔터프라이즈
  • 서비스 팩 1
  • 64 비트 OS
  • Visual Studio 2010 Enterprise 서비스 팩 1
  • IIS 버전 7.5

답변:


87

이 경우 가장 쉬운 해결책은 가상 디렉터리를 수동으로 만드는 것입니다.

우선, 올바른 버전의 ASP.Net이 설치되어 있고 IIS 확장을 설치했는지 확인해야합니다.

이렇게하려면 C : \ (Windows) \ Microsoft.NET \ Framework \ (dotnetver) \의 관련 .net 버전 폴더로 이동하여 (PC의 올바른 폴더에 대괄호로 묶은 폴더를 대체)이 명령을 실행하십시오.

aspnet_regiis.exe -i

다음에 일단 실행되고 완료되면 때로는 실행

iisreset

명령 줄에서 도움을받을 수 있으며 때로는 필요하지 않습니다.

그런 다음 IIS 관리자로 이동하여 localhost 웹 사이트를 찾은 다음 폴더 추가를 선택하십시오. 실제 ASP.Net 프로젝트가 포함 된 프로젝트의 폴더를 찾아서 추가하십시오.

마지막으로 추가 한 폴더를 마우스 오른쪽 버튼으로 클릭하면 '애플리케이션으로 변환'또는 '가상 디렉토리 생성'또는 이와 유사한 옵션이 있습니다.

!! 가상 디렉터리 이름이 'MyWebApp'인지 확인하십시오 !!

솔루션을 다시로드하면 작동합니다.

조심하십시오; 이것은 프로그래밍 질문이 아니며 (실제로 게시해서는 안됨)이 지침은 일반적인 문제이므로 게시했지만 게시 한 조언은 일반적입니다. 내가 나열한 명령은 정확하지만 IIS에서 수행해야하는 단계는 버전과 계정 권한에 따라 다를 수 있습니다.

행운을 빕니다!


지시에 따라 다음과 같은 오류가 발생했습니다.이 오류로 인해 가상 디렉터리를 삭제했습니다. 고유 키 속성 'name'이 (가) 'Telerik_Web_UI_WebResource_axd'로 설정된 'add'유형의 중복 콜렉션 항목을 추가 할 수 없음
— -practitioner

솔루션을 시작할 때 IIS 또는 Visual Studio에서 오류가 발생하는 것은 무엇입니까?
— Russ Clarke

또한 새 asp.net 프로젝트에 대한 web.config를 확인하십시오. 'Telerik.WebResource.axd'에 대한 참조가 두 개 이상 있으므로 하나만 필요합니다.
— Russ Clarke

문제가있는 항목을 제거 할 때 web.config ..를 확인한 다음 제거 된 항목이 필요하다는 오류 메시지가 표시됩니다.
— dotnet-practitioner가 2012

새 오류 메시지에 대해 곧 별도의 질문을 게시하려고합니다
— dotnet-practitioner

523

허용되는 대답에는 IIS 관리자가 필요하고 IIS Express에는 IIS 관리자 나 UI가 없으므로 IIS Express 사용자를위한 솔루션은 다음과 같습니다.

Visual Studio를 열고 오류 메시지가 표시되면 프로젝트 솔루션 탐색기를 마우스 오른쪽 단추로 클릭하고 "{ProjectName} .csproj 편집"을 선택하십시오.

프로젝트 파일에서 다음 줄을 변경 하십시오. 파일
<UseIIS>True</UseIIS>
을
<UseIIS>False</UseIIS>
저장하십시오.

이제 프로젝트를 다시로드하십시오.
끝난.

그런 다음 프로젝트를 열 수 있습니다. 이 시점에서 IIS를 사용하려면 프로젝트 속성으로 이동하여 "웹"탭을 클릭 한 다음 IIS 사용 옵션을 선택하십시오. "가상 디렉토리 만들기"버튼이 있습니다. 디렉터리를 만들려면 관리자 권한으로 Visual Studio를 실행해야하므로 필요할 경우 그렇게하십시오.


33
VS2010에서 UseIIS는 csproj 파일이 아니라 .csproj.user 파일에 있습니다
— oleksa

2
제 경우에는 여전히 IIS를 사용하고 싶기 때문에 URL을 변경하고 완벽하게 감사했습니다.
— kjetilh

업그레이드 및 이동시이 문제가 발생했습니다. 솔루션이로드되지 않았기 때문에 텍스트 편집기에서 csproj를 열었습니다. 고마워요 더그
— Kieran

2
이것이 정답입니다. 프로젝트는 IIS와 IISExpress를 동시에 사용하도록 구성되어 있습니다.
— Aaron Reed

2
VS2013을 사용하면 솔루션을 마우스 오른쪽 버튼으로 클릭 할 때 Edit {ProjectName} .csproj가 표시되지 않습니다. 파일 시스템으로 이동하여 .csproj 파일을 수동으로 편집하여 편집을 완료했습니다. 읽기 전용이어서 약간의 춤을 추어 야했지만 효과가있었습니다.
— Al Lelopath 2016 년

222

프로젝트 폴더를 열고 {Project} .csproj.user를 삭제 한 다음 Visual Studio에서 프로젝트를 다시로드하십시오.


2
이 IIS 오류를 본 팀 중 유일한 사람이었습니다. 내가 일하는 개발자 팀은 소스 제어의 동일한 .csproj 파일을 가지고 있으므로 위의 다른 솔루션은 내 문제가 아니 었습니다. 언급 한 .csproj.user 파일이 내 상황 에서이 오류를 일으킨 것으로 나타났습니다. 감사!
— My Stack Overfloweth

3
이것은 다른 모든 것을 시도한 후에 저에게 효과적이었습니다
— David

3
이것이 정답입니다. 시스템에서 프로젝트 구성 관련 문제를 해결합니다 (특히 TFS 작업시 중요).
— Markus

1
사용자 정의 iisurl 태그를 설정했지만 프로젝트가 여전히 로컬 호스트에 시작하면이 또한 솔루션입니다 <IISUrl> MachineName.domain : 12345 / </ IISUrl >
— LSP

5
이것은 나를 위해 일했습니다. 제 경우에는 <UseIIS> 설정이 없습니다.
— Techgration

33

이 솔루션은 나를 위해 일했습니다 : 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 편집을 선택하고 아래 그림과 같이 다음 코드를 찾으십시오.

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

또는

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

csproj 스크린 샷


30

나를 위해 .csproj 파일 에서이 두 줄을 삭제해야했습니다.

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

첫 번째 항목 만 삭제하려고 시도했지만 충분하지 않았습니다.

편집 : 많은 사용자가 지적했듯이 프로젝트 유형을 변경하거나 소스 제어 프로그램을 망칠 수 있습니다. 더 이상 가지고 있지 않은 학교 프로젝트이기 때문에 이러한 문제를 조사 할 수 없습니다. 시도 할 때주의하십시오. 최소한 삭제 한 내용을 복사하십시오.


9
이것은 효과가 있었고 대답으로 표시해야합니다. 나는 SO에서 제안한대로 많은 솔루션을 시도했지만이 것을 제외하고는 아무것도 효과가 없었다.
— Bose_geek

3
위의 모든 제안을 시도한 후에 이것은 실제로 저에게 효과적이었습니다. 내 친구 감사합니다!
— Noble-Savage

2
이것은 프로젝트 유형으로 변경되어 더 이상 웹 응용 프로그램이 아닙니다.
— Oram

3
.csproj 파일에서 <ProjectGuid>를 제거하는 것은 좋지 않습니다. 프로젝트를로드하기 위해서는 @Oram이 언급했듯이 <ProjectTypeGuids> 만 제거하면 충분합니다. 이는 프로젝트 유형을 변경할 때 좋지 않습니다. 이 답변은 변경 사항을 커밋하지 않고 VS의 코드를 살펴보면 좋습니다.
— elshev

1
이로 인해 계약 업체에서 발생하는 솔루션 탐색기로드 오류가 2013 년으로 이동하는 Visual Studio 2010 솔루션을 개발했습니다. 솔루션 파일에는 2 개의 프로젝트가 있습니다. 웹 앱 및 웹 서비스. 둘 중 하나를로드 할 수 없으므로 솔루션 파일을 열려고 시도한 후 솔루션 탐색기에 두 개의 빈 폴더 만 표시되었습니다. 제안 된 ProjectGuid 및 ProjectTypeGuids 줄을 주석 처리하면 솔루션 탐색기에서 이러한 프로젝트의 종속성을 볼 수 있습니다. 저에게는 이러한 변경 사항을 쉽게 취소 할 수 있기 때문에 저 위험 고수익 옵션이었습니다. 감사!
— JohnH

26

.csproj 또는 vbproj 파일을 편집하십시오. 이 항목을 찾아서 바꾸십시오.

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>

1
또한 DevelopmentServerPort를 80 이외의 값으로 변경해야했습니다.
— JoshNaro

1
csproj 파일에서 설정을 찾을 수없는 경우 .csproj.user 파일을 열어서 실행하십시오.
— devzero

10

필자의 경우이 문제는 IIS 바인딩이 손상되어 발생했습니다. 특히, 'http'바인딩이 삭제되었습니다. 그것을 다시 작성하면 문제가 해결되었습니다.


나는 매우 비슷한 문제를 경험했다. 내 HTTP 바인딩이 언젠가 이름을 바꾸는 것처럼 보였습니다. -_-의 프로젝트 파일 설정 <IISUrl>이 변경되지 않았지만 (메모리와 내 정신을 확인해 준 SVN 덕분에) iis 바인딩이 어떻게 되었습니까? 문제를 해결하고 프로젝션을 즉시로드했습니다.
— Patrick M

또한 어떤 이유로 대상 사이트의 sni / hostname을 변경했는지 확인하십시오. 이로 인해 내 오류가 발생했습니다.
— juarola

5

관리자 권한으로 Visual Studio를 열어보십시오. 필자의 경우 IIS 사이트에 액세스 하여이 오류를 해결했습니다. 그런 다음 관리자 권한이 필요하지 않은 IIS Express를 사용하도록 프로젝트를 전환 할 수있었습니다.


5

이것은 나를 위해 일했습니다 :-
모든 IIS 웹 사이트가 localhost (All Unassigned) 만 가리 키도록하십시오.

여기에 이미지 설명을 입력하십시오


5

TFS를 통해 연결된 경우 project.csproj.user 파일을 열고 확인하십시오.

<UseIISExpress>false</UseIISExpress>

true로 변경하십시오.

<UseIISExpress>true</UseIISExpress>

나는 이것이 실제 솔루션보다 문제에 대한 해결 방법이라고 생각하지만 즉각적인 문제를 해결하면서 엄지 손가락을 포기했습니다.
— Nandun


4

UseIIS 속성 값을 true로 설정하지 않고 프로젝트를로드 할 수 있습니다. 아래 단계를 따르십시오.

mywebproject.csproj 파일에서

<IISUrl> http : // localhost / MyWebApp / </ IISUrl> 태그를 삭제하고 파일을 저장하십시오. 응용 프로그램은 기본 포트를 자동으로 할당합니다.


4

관리자는start Visual Studio를 믿지 않을 것입니다.

메시지에서 명백한

웹 서버 ' http : // localhost / MyWebApp '을 찾을 수 없습니다.

수도 있기 때문에 찾을 수 없습니다 it has no privileges to see it

그래서 그냥 restart같은 시각적 스튜디오 관리자


3

필자의 경우 http에서 https로 전환하고 싶었으므로 IIS에서 http를 삭제했습니다. 내 .csproj.user 파일에서 여전히 다음을 발견했습니다.

<IISUrl>http://localhost/</IISUrl>

그래서 나는 그것을 다음과 같이 바꿨다.

<IISUrl>https://localhost/</IISUrl>

2

제 경우에는 명령을 실행하는 오프라인 모드에서 솔루션을 열 수있었습니다.

iisreset

2

Win8 사용자의 경우 수락 된 답변의 단계를 따르면 콘솔은 "이 명령을 실행하기 위해 명령 줄을 사용하지 않아야합니다"라는 메시지를 뱉어냅니다 (그림). 대신 제어판 (또는 Windows + R> appwiz.cpl)을 통해 프로그램 및 기능에 액세스하고 'Windows 기능 켜기 또는 끄기'를 클릭 한 후 다음이 설치되어 있는지 확인하십시오.

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

이것은 다른 옵션들도 검사 할 것입니다. 이러한 기능을 설치하고 높은 권한으로 VS2012를 실행하자마자 앱을 성공적으로 시작할 수있었습니다.


2

이것은 .csproj 파일에서 프로젝트를 열려고 시도했을 때 발생하지만 VS에서 프로젝트를 열어서 극복합니다.

파일> 열기> 웹 사이트

내 프로젝트가 포함 된 디렉토리를 선택하십시오.


1

나도이 오류가 발생했습니다. 모든 것이 올바르게 설정되었다고 생각했지만 한 가지 누락 된 것을 발견했습니다. 프로젝트에 사용한 호스트 이름을 아직 확인할 수 없었습니다.

내 응용 프로그램이 호스트 이름에서 현재 클라이언트 이름을 결정하기 때문에 clientname.mysuperapp.local개발 과 같은 호스트 이름을 사용했습니다 . 개발 호스트 이름을 hosts파일에 추가하면 프로젝트를 다시로드 할 수있었습니다. 분명히, 나는 어쨌든 이것을해야했지만 VS는 프로젝트를로드하기 전에 호스트 이름을 확인한다고 생각하지 않았습니다.


1

IIS Express가 설치되어 있는지 확인하십시오. IIS Express가 없으면 Visual Studio에서 설정을 무시하고 Express를 <UseIISExpress>false</UseIISExpress>계속 찾을 수 있습니다 .


1

제 경우에는 "기본"웹 사이트가 있는지 확인하십시오


1

필자의 경우 IIS의 "기본 웹 사이트"에는 포트 80의 로컬 호스트에 대한 바인딩이 없습니다. .csproj 파일의 값이 무엇이든 바인딩해야합니다.


1

아래 링크에서 다운로드 한 후 IIS Express를 다시 설치하여 간단히 고쳤습니다.

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264


1
이것은 질문에 대한 답변을 제공하지 않습니다. 평판 이 충분 하면 모든 게시물 에 댓글 을 달 수 있습니다 . 대신 asker의 설명이 필요없는 답변을 제공하십시오 . - 리뷰에서
— FluffyKitten

@FluffyKitten OP와 동일한 오류가 발생했지만 다른 모든 답변을 시도했지만 IIS Express를 다시 설치하는 것만으로는 아무것도 작동하지 않았습니다. 그래서 이것이 OP의 질문에 대한 나의 대답이라고 믿습니다. IIS를 다시 설치하십시오.
— Matthew

귀하의 답변이 품질이 낮은 것으로 표시되어 검토 절차를 진행 중입니다 (의견 끝에 "검토에서"). 작동 할 수도 있지만 다른 방법이 작동하지 않고이 OP의 문제에 대한 특정 솔루션이 아닌 경우 소프트웨어 재설치는 마지막 복원 옵션입니다.
— FluffyKitten

아무 것도 효과가없는 후 마지막 리조트 옵션 인 경우 (Ajay2707에 따르면 일부 가난한 영혼을 위해 다른 답변을 사용할 수있는 가능성이 없음)이 답변이 유용 할 것이라고 생각합니다. 일부 사람들에게 적합한 유일한 답변 일 경우 어떻게 답변을 낮은 품질로 지정할 수 있습니까? 나는 당신에게 Ajay2707을 지원합니다. 시간을내어 커뮤니티에 기여해 주셔서 감사합니다.
— nardnob

Inb4이 대화는 품질이 낮은 것으로 이동 / 삭제됩니다. 비바 라 저항 !!
— nardnob

0

제 경우에는 csproj 파일 에서 참조 된 URL 이 잘못되었습니다.

www 접두사가 필요했습니다 .

변경하고 파일을 저장했으며 프로젝트가 정상적으로로드되었습니다.


0

<ProjectTypeGuids>.csproj 파일 의 요소에 단위 테스트 프로젝트 GUID가 포함되어 있으면이 문제가 발생했습니다 {3AC096D0-A1C2-E12C-1390-A8335801FDAB}.

그것을 제거하면 문제없이 프로젝트가로드되었습니다.


0

DNN 사용자의 경우 내 문제는 포트 80에서 dnndev.me에 대한 바인딩이 필요하다는 것입니다. 다른 포트에서 실행되는 여러 설치가 있으며 VS는 특정 URL이 포트 80에 있어야합니다 (내와 같은 86은 아님).


0

이 완성 된 솔루션을 단계별로 따르십시오. VS 2017에서 저에게 효과적입니다.

  1. 관리자 모드에서 명령 프롬프트 열기

  2. 파일 탐색기를 열고 .NET Framework 폴더로 이동하십시오.

      Eg:C:\Windows\Microsoft.NET\Framework\v4.0.30319

    v4.0.30319 이것은 .NET 폴더입니다. 관련 폴더를 선택하려고합니다.

  3. CMD에서-.NET 폴더 경로로 이동

    cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
  4. CMD에서 아래 명령 실행

    aspnet_regiis.exe -i

    이 메시지가 마침내 표시됩니다. ASP.NET 설치가 완료되었습니다 (4.0.30319.0).

    iisreset

    이 메시지가 마침내 나타납니다. 인터넷 서비스가 성공적으로 다시 시작되었습니다.

  5. 컴퓨터에서 IIS를 엽니 다 (구성하지 않은 경우 다음을 수행하십시오 )

    1. 사이트로 이동하여 마우스 오른쪽 버튼을 클릭하십시오

    2. 웹 사이트 추가

    3. 채우기- 사이트 이름 및 실제 경로 선택

    4. 그런 다음 포트 번호를 입력하십시오 (.csproj 파일에서 포트 번호를 찾을 수 있으며 포트 번호는 (IISUrl)과 같아야합니다.

    EG : <IISUrl>http://localhost:15724/</IISUrl> my port is 15724

    참고 : 포트 80 번호는 만들 수 없습니다 . 기본 IIS 페이지를 사용했기 때문에

    1. 확인을 클릭하십시오
  6. 관리자 권한으로 Visual Studio 열기

  7. 그런 다음 마우스 오른쪽 버튼을 클릭하고 프로젝트를 다시로드 하십시오.

문제가 해결되었을 수 있습니다.

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