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

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

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

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


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


Ответы (2)


Обновлять

Как заявил @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, действительно может получить доступ к папке времени выполнения.
person Victor Hurdugaci    schedule 01.05.2015
comment
И последнее, что может пойти не так, - это использование среды выполнения, которая не нравится остальным пакетам на стадии бета-тестирования. На момент написания coreclr находится на стадии beta4 на nuget и beta5 на предварительной версии myget.org. Если ваши пакеты поступают из nuget, такие пакеты, как Microsoft.AspNet.Mvc, находятся на beta4, и, по моему опыту, не будут работать на coreclr beta5, так как в них вносится много критических изменений. - person vcsjones; 01.05.2015
comment
Спасибо, наконец-то заработал. Мне просто нужно было опубликовать сайт под архитектурой .NET Core x64 вместо x86, и это сработало. - person Cindro; 02.05.2015
comment
Здесь предлагается использовать «Нет управляемого кода» для пула приложений. . - person Baga; 03.03.2016
comment
Привет, как я могу получить список времени выполнения? Я не знаю, какую среду выполнения мне использовать - person MichaelMao; 12.05.2016
comment
этот ответ устарел. См. Ссылку на документы ниже для получения обновленной информации - person wickdninja; 01.08.2017

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

person wickdninja    schedule 15.12.2016
comment
Если вы резюмируете статью, в ней, вероятно, есть изрядное количество баллов. Ссылки на документацию по SO обычно не одобряются. - person crthompson; 13.01.2017
comment
@paqogomez Спасибо за совет. Я согласен, я мог бы получить больше очков за обобщение документации, но поскольку новый docs.microsoft.com/en-us/aspnet/core/publishing/iis - это сгенерированный документ, и любой может внести в него свой вклад через изменить на странице. Я бы сказал, что любое резюме, которое я предоставлю, так же быстро устареет. Что касается документации, я предпочитаю давать людям точную информацию, чем жадничать до баллов. :) - person wickdninja; 19.01.2017
comment
Ну, это упускает суть SO. В SO мы никогда не уверены, что ссылка устарела, и мы не уверены, актуальна ли информация. Итак, мы резюмируем, вместо того, чтобы давать ссылки, и делаем все возможное, чтобы не отставать от наших постов и держать информацию в актуальном состоянии. Счастливого SO'ing - person crthompson; 20.01.2017