Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Запустите ASP.NET 5 (MVC 6) с помощью .NET Core в IIS

Автор вопроса: CindroОтветов: 2

Я только что создал быстрое приложение ASP.NET 5 MVC 6 в Visual Studio.NET 2015 RC и хотел бы, чтобы оно работало на моем веб-сервере IIS в Windows 7.

Обычно, когда я создаю веб-сайт на IIS, мне нужно выбрать пул приложений, либо v2.0, либо v4.0 Integrated.

Теперь, когда .NET Core поставляется со всеми своими библиотеками в виде пакетов nuget, как я могу запустить его в IIS? какой пул приложений выбрать? Как это работает?

  • Я еще не пробовал этот сценарий развертывания, но полагаю, что IIS 7 (который поставляется с Windows 7) не будет поддерживать его. Раньше вам приходилось переупаковывать приложения vnext, чтобы заставить их работать в IIS, потому что ни одна версия IIS не поддерживает их из коробки. Возможно, сейчас IIS 8 это делает, но на самом деле может потребоваться обновление до Windows 10, чтобы фактически использовать развертывание по умолчанию. См .: github.com/ aspnet / Главная / вики / Chris Pratt 30.04.2015
  • Я искал повсюду и не могу найти ответ, я даже не уверен насчет Windows 10. Допустим, я хотел, чтобы приложение запускалось на www.mywebsite.com, размещенном на IIS, как мне это сделать? Cindro 30.04.2015
  • Я думаю, вы ищете Проект Гелиос. Это пределы моих знаний по этому вопросу. :) bricelam 01.05.2015

iis

Ответы

Ответ 1 · рейтинг 18 · Victor Hurdugaci

Обновлять

Как заявил @wickdninja, приведенное ниже устарело. Вместо этого используйте его обновленное решение: https://docs.microsoft.com/en-us/aspnet/core/publishing/iis Чтобы приложение работало на IIS:


  1. Создайте веб-сайт в пуле приложений v4.0.

  2. Объедините / опубликуйте приложение, используя dnu publish. Это создаст автономный пакет, в котором есть приложение, среда выполнения и все зависимости. Измените имя среды выполнения, чтобы оно соответствовало выбранной вами среде выполнения.

      dnu publish --runtime dnx-coreclr-win-x86.1.0.0-beta5-11625
    

    Вы даже можете передать --no-source, если не хотите, чтобы приложение компилировалось из исходников при каждом запуске.

  3. Скопируйте пакет (из bin\output) в корень сайта.

  4. Запустить

Что может пойти не так:

  1. Разрядность IIS (32/64 бит) должна соответствовать разрядности coreclr.
  2. Если вы не копируете связанный веб-сайт в корень веб-сайта, убедитесь, что учетная запись, под которой работает IIS, действительно может получить доступ к папке времени выполнения.

Ответ 2 · рейтинг 4 · wickdninja

Этот вопрос устарел, и с тех пор Microsoft выпустила довольно подробную документацию для этого сценария. Вы можете найти его здесь: https://docs.microsoft.com/en-us/aspnet/core/publishing/iis

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы