VS 2012는 사용자 지정 바인딩 호스트와 함께 IIS를 사용하는 프로젝트를로드 할 수 없습니다-IIS Express를 사용하고 있다고 생각합니다.


85

IIS를 사용하는 ASP.NET 프로젝트가 있습니다. IIS 사이트는 사용자 지정 바인딩 호스트 이름을 사용하도록 구성됩니다. 프로젝트 파일에는 다음 설정이 포함됩니다.

...
<UseIISExpress>false</UseIISExpress>
...
<ProjectExtensions>
  <VisualStudio>
    <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
      <WebProjectProperties>
        <UseIIS>True</UseIIS>
        <AutoAssignPort>False</AutoAssignPort>
        <DevelopmentServerPort>8662</DevelopmentServerPort>
        <DevelopmentServerVPath>/</DevelopmentServerVPath>
        <IISUrl>http://custom.host.name/</IISUrl>
        <NTLMAuthentication>False</NTLMAuthentication>
        <UseCustomServer>False</UseCustomServer>
        <CustomServerUrl></CustomServerUrl>
        <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
      </WebProjectProperties>
    </FlavorProperties>
  </VisualStudio>
</ProjectExtensions>
...

이러한 방식으로 프로젝트를 구성 http://custom.host.name/하면 디버깅시 사이트에서 사이트에 액세스 할 수 있으며 VS는 IIS 작업자 프로세스에 자동으로 연결됩니다.

프로젝트를 다시로드 할 때 (솔루션 닫기 / 다시 열기 또는 프로젝트 컨텍스트 메뉴에서 언로드 / 다시로드) 예기치 않은 일이 발생합니다. 프로젝트가로드되지 않고 (load failed)솔루션 탐색기에서 프로젝트 이름 오른쪽에 표시되고 다음 메시지와 함께 메시지 상자가 표시됩니다 (출력 창에도 표시됨).

The URL 'http://custom.host.name/' for Web project 'Some.Asp.Net.Project' 
is configured to use IIS Express as the web server but the URL is currently
configured on the local IIS web server. To open this project, you must use
IIS Manager to remove the bindings using this URL from the local IIS web server.

IIS Express applicationhost.config파일 에서 프로젝트 사이트 구성을 제거하려고 시도했지만 도움이되지 않았습니다.

기본 사이트에서 프로젝트를 IIS 응용 프로그램에 매핑 할 때이 문제가 발생하지 않습니다.

VS 버전은 Ultimate 2012 업데이트 3입니다.


3
예,이 프로젝트에서 IIS Express를 한 번 사용했기 때문에 VS2013에서 동일한 문제가 발생합니다. 정말 짜증납니다!
kipusoep

3
csproj 또는 csproj.user 파일을 편집하고 UseIISExpressfalse로 설정하십시오 . stackoverflow.com/a/19103452/138938
Jon Crowell 2013

2
@HeadofCatering, 방금이 문제가 있었지만 UseIISExpress는 프로젝트 .csproj 파일에서 이미 false로 설정되었습니다. 그러나 IIS를 검색하기 만하면 csproj 파일 (<ProjectExtensions> <VisualStudio> <FlavorProperties> <WebProjectProperties>에서) 내에서 "<UseIIS> True </ UseIIS>"XML 태그를 찾아 "< UseIIS> True </ UseIIS> "를 사용하면 Visual Studio에서 프로젝트를 다시로드 할 수 있습니다. 바라건대 이것은 다른 의도하지 않은 효과가 없었기를 바랍니다!
mgrandi

2
@mgrandi 오타를 염두에 두십시오. 나를 위해 트릭을 설정 <UseIIS>True</UseIIS>했습니다 <UseIIS>False</UseIIS>. 제안 해 주셔서 감사합니다!
Dion V.

답변:


205

관리자로 시작해도 문제가 해결되지 않았습니다. 무엇 나를 위해 그것을 해결하는 것은 개방이었다 모두.csproj.csproj.user파일 모두가 한 보장 UseIISExpress으로 설정 false.

제 경우에는 으로 표시 되었음에도 .csproj.user파일이 파일을 재정의했습니다 ..csprojSaveServerSettingsInUserFilefalse

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>

48
csproj.user를 삭제하면 마침내 내 문제가 해결되었습니다. 감사합니다!
Bryan Sumter

감사합니다. csproj 설정을 살펴보면서 머리가 부러졌습니다. 모든 것이 좋아 보였다. 나는 csproj.user 파일을 삭제 한 후에는 불만 ++ 1없이 프로젝트를로드 시작
에센


21

" SaveServerSettingsInUserFile "을 True로 설정 했으며 저에게 효과적 이었습니다.

<ProjectExtensions>
<VisualStudio>
  <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
    <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>50584</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:50584/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
    </WebProjectProperties>
  </FlavorProperties>
</VisualStudio>

출처 : 여기를 클릭


4

IISexpress, applicationHost.Config (% userprofile % \ iisexpress \ config에 있음)에 대한 사용을 사용하는 경우 설정이 작성되지 않도록 "모든 사용자에게 서버 설정 적용 (프로젝트 파일에 저장)"옵션을 선택해야합니다. yourProject.csproj.user에서 프로젝트 설정

이 작업은 project.csproj 파일을 편집하고 작성하는 것과 동일 <WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>62242</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:8100/Claims/</IISUrl> <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl> <IISAppRootUrl>http://localhost:8100/Claims/</IISAppRootUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl></CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> 합니다. IISExpress를 활성화하고 applicationHost.config 파일에 프로젝트 설정과 관련된 항목이 포함되어 있지 않으면 "Create Virtual Directory"버튼을 눌러 완료하면됩니다. !

도움이 되었기를 바랍니다


이것은 어떤 버전의 Visual Studio입니까? VS Pro 2013에는이 옵션이 없습니다
Matt R

@Matt R : VS2012 pro를 얻었으므로 귀하의 버전과 동일하다고 가정합니다. 솔루션 탐색기에서 web.application 프로젝트를 선택하고 마우스 오른쪽 단추를 클릭 한 다음 "속성"을 선택합니다. 그러면 탭 창이 나타나면 "웹"탭을 선택하면 답변에 동봉 된 스크린 샷이 표시됩니다. 늦게 죄송합니다. 대답!
zobidafly

3

제 경우에는 * .csproj.user 파일을 삭제하면 정상적으로 작동했습니다.


2

같은 문제가 있었는데, 제가해야 할 일은 관리자 권한으로 Visual Studio를 여는 것이었고 이로 인해 문제가 해결되었습니다.

Visual Studio 2012를 마우스 오른쪽 버튼으로 클릭하고 "관리자 권한으로 실행"을 클릭합니다. 도움이 되었기를 바랍니다


2

나를 위해 Windows 7 64 비트를 사용하는 Visual Studio 2015 Preview에서 작동하는 두 가지 조합 :
1. * .csproj.user 파일을 삭제하고
2. <UseIISExpress>false</UseIISExpress>솔루션 파일에서.
2 단계 : Visual Studio에서 프로젝트를 마우스 오른쪽 버튼으로 클릭 ==> 언로드 ===> 솔루션 편집


1

이것으로 충분합니다

프로젝트 파일 x.csproj에서이 줄을 주석으로 처리하십시오.

<!--<UseIIS>True</UseIIS>-->

x.csproj : error : 웹 프로젝트 'x' 의 URL ' http : // localhost / x '는 IIS Express를 웹 서버로 사용하도록 구성되었지만 URL은 현재 로컬 IIS 웹 서버에 구성되어 있습니다. 이 프로젝트를 열려면 IIS 관리자를 사용하여 로컬 IIS 웹 서버에서이 URL을 사용하는 바인딩을 제거해야합니다.


1

IIS를 사용하도록 구성된 프로젝트가 웹 사이트 (myproject.mycompany.local)를 찾을 수 없기 때문에로드되지 않을 때 여기에 도착했습니다. 웹 사이트가 내 웹 브라우저에 제대로로드 되었음에도 불구하고 말입니다.

해결책은 IIS 7의 사이트 바인딩에 호스트 이름이 "myproject.mycompany.local"로 설정되어 있는지 확인하는 것이 었습니다. 사이트의 바인딩을 얻으려면 :

  1. IIS 7에서는 왼쪽 탐색 패널에서 사이트를 선택합니다.
  2. 오른쪽의 액션 패널에서 바인딩 ...을 클릭 합니다.

사이트가 웹 브라우저에서도로드되지 않는 경우 호스트 파일에 해당 항목이 없기 때문일 수 있습니다.

127.0.0.1    myproject.mycompany.local

1

프로젝트가 솔루션의 일부인 경우 솔루션 파일 (.sln)을 열고 프로젝트 섹션을 편집합니다.

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

그것은 나를 위해 일했습니다.


0

이 문제는 오늘 VS 2013에서 내 하루를 망쳤습니다. 위의 모든 작업을 시도했지만 IIS에서 웹 사이트를 만들고 .csproj 파일 (특히 IISUrl 요소)에이 섹션을 채울 때까지 프로젝트를로드하지 못했습니다.

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>81</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost/SomeProject</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>


이것은 엄청난 의미가 있습니다. 그래도 작동하지 못했습니다.
Winnemucca

0

나는 관리자로 실행하는 것이 나를 위해 작동하지 않는 동일한 문제가있었습니다.

<UseIIS>True</UseIIS>프로젝트의 ".csproj"파일에서 false로 설정 하면 프로젝트를 일시적으로로드 할 수 있지만 솔루션을 다시 시작하거나 닫은 후 값이 True로 반환되었습니다.

더 깔끔한 답변을 위해 @Cyrus의 답변 (나에게 효과적이었습니다)을 완성하고 프로젝트의 csproj.user 파일에 더 집중하고 문제의 정확한 원인을 찾았습니다 : <UseIISExpress>true</UseIISExpress>false로 설정 한 다음 프로젝트를 다시로드했습니다. csproj.user 파일을 삭제하지 않고 잘 작동합니다. 결과는 다음과 같습니다.

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
    <UseIISExpress>false</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <NameOfLastUsedPublishProfile>My Project's Name</NameOfLastUsedPublishProfile>
  </PropertyGroup>

필자의 경우 관리자 권한이 아닌 Visual Studio를 정상적으로 열 때마다 IIS 설정이 반환되고 작업을 다시 수행해야합니다.
Homa Pourmohammadi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.