Развертывание проекта .Net Core WebAPI в IIS

Я создал простой веб-API, используя .Net Core, и пытаюсь опубликовать его в IIS. Но получение HTTP 500.

Я подписался на https://docs.asp.net/en/latest/publishing/iis.html и сделал именно то, что в ней упоминалось.

Я установил только https://www.microsoft.com/net/download как

DotNetCore.1.0.1-WindowsHosting.exe OPT_INSTALL_REDIST = 0

ПРИМЕЧАНИЕ. Я могу успешно развернуть приложение MVC и получить к нему доступ, но не могу получить доступ к приложению WebAPI, выполнив те же действия.

В журналах IIS я вижу ошибку ниже.

Не удалось запустить процесс с помощью командной строки '"dotnet". \ Project-1.dll', ErrorCode = '0x80070002'.

Я использую шаблон веб-API по умолчанию, представленный в Visual Studio 2015

я что-то упускаю. Развертывание WebAPI отличается от развертывания приложения MVC с ядром .NET?


person Venky    schedule 26.09.2016    source источник
comment
Не могли бы вы дать нам немного дополнительной информации? Вы ориентируетесь только на .NET Standard или используете программный код? Веб-API и MVC не разделены в .NET Core, как это было в прошлом, так что вряд ли это будет камнем преткновения. Одинаковы ли пулы приложений для вашего приложения MVC и вашего веб-API?   -  person Feasoron    schedule 26.09.2016
comment
Я нацелен на .NetCore App 1.0.1. Я использую тот же пул приложений с установленным not managed. Я использую базовый шаблон WebAPI, предоставленный Visual Studio. Думаю, вы можете повторить это.   -  person Venky    schedule 26.09.2016
comment
Последний вопрос, и я посмотрю, смогу ли я заставить это происходить для меня локально: если вы проверите свои журналы IIS, есть ли какие-нибудь важные детали? Этот код ошибки является универсальным.   -  person Feasoron    schedule 26.09.2016
comment
Я получаю тот же код ошибки, который обновил в вопросе. Думаю, это может быть связано с установкой ядра .net на IIS. Я могу развернуть его локально, но не на сервере.   -  person Venky    schedule 27.09.2016
comment
Хорошо, это то, что мне потребовалось (если это сработает, мы переместим его в ответ, чтобы другим было проще). Сначала проверьте системную (не пользовательскую) переменную PATH, чтобы убедиться, что установщик добавил dotnet к вашему пути. Если этого не произошло, добавьте его. В любом случае, IIS не получит его во время работы. Зайдите в службы и перезапустите службу активации Windows. Это перезапустит все биты IIS и заставит его обновить путь.   -  person Feasoron    schedule 27.09.2016
comment
Спасибо Feasoron, Собственно ваше решение верное. но я уже сделал это, и это работает. Мне пришлось переустановить среду выполнения ядра .net и перезапустить сервер. Возможно, мне следовало перезапустить только службу активации Windows. Вы можете добавить все свои баллы в ответ ..   -  person Venky    schedule 27.09.2016


Ответы (1)


Когда вы устанавливаете пакет .NET Core Windows Server Hosting, он не перезапускает все процессы IIS, если IIS в данный момент запущен. Это хорошо, так как на рабочем сервере вы бы не хотели, чтобы они просто перезагружались, но было бы неплохо, если бы это было немного понятнее. Сначала проверьте свою системную (не пользовательскую) переменную PATH, чтобы убедиться, что путь к Dotnet существует. Затем перейдите в службы и перезапустите службу активации Windows. Это перезапустит все биты IIS и заставит его обновить путь. Как только вы это сделаете, IIS должен нормально обслуживать ваше приложение .NET Core.

person Feasoron    schedule 27.09.2016