2016-07-27 3 views
27

내가 어떻게 설정 지역 IIS 대신 IIS 익스프레스 디버깅을 사용하는 닷넷 코어 1.0 프로젝트?IIS Express 대신 로컬 IIS를 사용하도록 ASP.NET Core 1.0을 구성하는 방법은 무엇입니까?

launchSettings.json 파일을 여러 가지 방법으로 수정 해 보았습니다. 예를 들어, 지역 IISIIS 익스프레스의 모든 항목을 대체하고 내 사용자 지정 로컬 호스트 http://sample.local를 사용하도록 applicationUrllaunchUrl를 갱신 (I 호스트 파일을 업데이트하고 IIS를 이미 관리자가 설정 한)하지만 행복하지. 의

기본 설정 등록/launchSettings.json 파일 :

{ 
    "iisSettings": { 
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": { 
     "applicationUrl": "http://localhost:38601/", 
     "sslPort": 0 
    } 
    }, 
    "profiles": { 
    "IIS Express": { 
     "commandName": "IISExpress", 
     "launchBrowser": true, 
     "environmentVariables": { 
     "ASPNETCORE_ENVIRONMENT": "Development" 
     } 
    }, 
    "SampleApp": { 
     "commandName": "Project", 
     "launchBrowser": true, 
     "launchUrl": "http://localhost:5000", 
     "environmentVariables": { 
     "ASPNETCORE_ENVIRONMENT": "Development" 
     } 
    } 
    } 
} 

답변

37

현재 직접 개발하는 동안 개발 폴더가 모두를 제공하지 않는 등의 ASP.NET 핵심 응용 프로그램을 호스팅하는 IIS를 사용할 수 없습니다 IIS가 호스트해야하는 필수 파일 이것은 개발 환경에서 ASP.NET 코어를 실행하는 데 약간의 고통을줍니다.

this article by Rick Strahl에 지적한 것처럼, 시도하고 수행 할 많은 이유가 없습니다. IIS는 ASP.NET 코어 어플리케이션을 실행할 때 거의 아무것도하지 않습니다. 사실, 여러분의 어플리케이션은 더 이상 IIS 프로세스에서 직접 실행되지 않고 Kestrel 웹 서버를 호스팅하는 완전히 별개의 콘솔 어플리케이션에서 실행됩니다. 따라서 콘솔 응용 프로그램을 스스로 호스팅 할 때 실제로 동일한 환경에서 실행됩니다.

을 실행해야 할 경우 dotnet 명령 줄 또는 Visual Studio 도구를 사용하여 로컬 폴더에 게시 할 수 있습니다. 그런 다음 출력 폴더에 당신의 IIS 사이트를 가리킬 수 있습니다

dotnet publish 
    --framework netcoreapp1.0 
    --output "c:\temp\AlbumViewerWeb" 
    --configuration Release 

: 당신이 C:\output 폴더에 게시 할 경우

예를 들어, 다음과 같은 명령을 사용할 수 있습니다. 응용 프로그램 풀 CLR 버전을 아니요 관리 코드으로 설정하고 AspNetCoreModule을 사용할 수 있는지 확인하십시오. 자세한 내용은

, 나는 릭 Strahl의 주장을하지 않는 https://docs.asp.net/en/latest/publishing/iis.html

+8

참조하십시오. 예를 들어 JS 프런트 엔드로 .NET 백 엔드를 개발하는 경우 백엔드 전체를 실행해야합니다. 이제는 변경을 할 때마다 백엔드를 게시하거나 Visual Studio에서 백엔드 프로젝트를 열고 디버그를 실행 상태로 두어야합니다. 이전에는 IIS를 통해 필요에 따라 구축하고 호스트했습니다. 지금은 하나의 추가 단계입니다. – Delosdos

+3

실제로 개발할 때 IIS를 사용하지 않으려 고하는 주장입니다. 개발 중에 그렇게하는 대신, JS front end 작업을 시작하기 전에'dotnet run'을 사용하여 Kestrel에서 바로 실행하십시오. 이렇게하면 솔루션을 열 필요가 없으며 게시 할 필요가 없으며 IIS를 전혀 사용할 필요가 없습니다. – Sock

+7

.NET.NET 이전 버전의 .NET에서는 응용 프로그램을 IIS에서 호스팅 할 수 있으므로 특히 변경해야하는 경우가 아니면 Visual Studio를 열 필요가 없습니다. 변경 한 후에 빌드를 완료하면 완료됩니다. Kestrel을 사용하면 빌드해야 할뿐만 아니라 JS 프런트 엔드 개발을 시작하기 전에 "dotnet run"을 게시하거나 사용해야합니다. 이는 추가 단계입니다.나는 그의 주장에 동의하지 않는다. 나는 더 쉽거나 더 좋다고 동의하지 않는다. – Delosdos