Хостинг проектов ASP.NET 5 на IIS

Я хочу разместить мой проект ASP.NET 5, который использует MVC 6 и Entity Framework 7 на бесплатном микро-экземпляре Amazon. Я не могу найти пошаговое руководство о том, как размещать проекты ASP.NET 5 в IIS, все материалы просто упоминают, что это возможно, но без каких-либо руководств. В основном, я развертываю локальную папку, а затем копирую на вновь созданный сайт, но ничего не работает. К сожалению, я не могу использовать Azure, поскольку он имеет только один месяц бесплатной пробной версии, а не год.

Ответ 1

Я использую Visual Studio 2015 Preview для создания проектов ASP.NET 5. Я не думаю, что сейчас сложно развертывать на IIS. Сначала опубликуйте свой сайт, опубликовав его как файловую систему в предварительном просмотре VS 2015, затем скопируйте опубликованную папку на свой сервер, создайте приложение в IIS и установите папку приложения в папку wwwroot (а не корневую папку), что и все. Имейте в виду, проверьте, существует ли на вашем веб-сайте project.json "Microsoft.AspNet.Server.IIS", прежде чем публиковать его.

Изменить: должен быть файл web.config в папке wwwroot, содержимое web.config может быть таким (с опцией прекомпиляции при публикации):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="kpm-package-path" value="..\approot\packages" />
    <add key="bootstrapper-version" value="1.0.0-beta1" />
    <add key="kre-package-path" value="..\approot\packages" />
    <add key="kre-version" value="1.0.0-beta1" />
    <add key="kre-clr" value="CoreCLR" />
    <add key="kre-app-base" value="..\approot\packages\Rvc.PopUpSite\1.0.0\root" />
  </appSettings>
</configuration>

или как это (без опции прекомпиляции):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="kpm-package-path" value="..\approot\packages" />
    <add key="bootstrapper-version" value="1.0.0-beta1" />
    <add key="kre-package-path" value="..\approot\packages" />
    <add key="kre-version" value="1.0.0-beta1" />
    <add key="kre-clr" value="CoreCLR" />
    <add key="kre-app-base" value="..\approot\src\Rvc.PopUpSite" />
  </appSettings>
</configuration>

Обратите внимание на значение kre-app-base. Иногда его значение представляет собой пустую строку после публикации в Visual Studio.

Ответ 2

1. Сначала вам нужно опубликовать сайт в файловой системе:

visual studio 2015 publish window

2. Создайте новое приложение в IIS:

Add website IIS manager buttonAdd website IIS manager window

3. Разархивируйте файл, созданный на шаге 1 в каталоге веб-сайта, с шага 2. Папка должна выглядеть так:

enter image description here

4. Вам также может потребоваться установить DNVM (ранее KVM) и среду исполнения DNX (ранее KRE):

Установить диспетчер версий DNVM - dotnet (KVM)

Установите среду выполнения DNX внутри DNVM (KRE)

Ответ 3

У меня была та же проблема с DNX Beta 4.

Если у кого-то такая же проблема:

При публикации вашего веб-сайта в Visual Studio 2015 RC вам необходимо настроить целевую инфраструктуру x64 (Target DNX Version) и написать "XXX\wwwroot" на физическом пути в настройке вашего сайта IIS.

Ответ 4

Вы можете использовать метод публикации файловой системы. Выполните следующие действия:
1/Создайте в папке с Visual Studio файлы .dll
2/Создайте веб-сайт в диспетчере IIS и укажите путь к вашей папке

Ответ 5

Я нашел то, что пропустил, мне нужно изменить url на мой общедоступный DNS в файле projct.json:

"web": "Microsoft.AspNet.Hosting - сервер Microsoft.AspNet.Server.WebListener --server.urls http://ec2-54-68-21-4.us-west-2.compute.amazonaws.com/

после загрузки сайта в Amazon мне нужно запустить web.cmd в корне сайта