У нас есть приложение ASP.NET Core MVC, предназначенное для net461
из-за необходимости использования Entity Framework для Oracle.До недавнего времени это приложение работало нормально как на наших серверах DEV, так и на серверах контроля качества.
Мы развертываем его как автономное приложение, но у нас также есть среда выполнения .NET Core и хостинг ASP.NET Core IISпакет установлен на серверах.
Недавно у нас начались проблемы после развертывания, когда приложение не запускалось.В браузере мы получаем 502.5 Process Failure .На сервере единственная ошибка, которую мы можем найти, находится в журналах событий Windows: Application 'MACHINE/WEBROOT/APPHOST/DEFAULT WEB SITE/<appname>' with physical root 'D:\path\' created process with commandline 'D:\path\<appname>.exe ' but failed to listen on the given port '<randomport>'
.
Различные сообщения и статьи SO, которые я обнаружил, говорят, что обычно это происходит из-за другой версии среды выполнения, установленной на сервере, по сравнению с. клиент.
Это автономно, поэтому среда выполнения связана, поэтому я не уверен, что это проблема.
Мы не изменили то, что установлено на наших компьютерах разработки ИЛИ на серверах, но попытались удалить и переустановить среду выполнения на серверах.
, так как это предназначено для полной платформы net461
имеет ли значение версия .NET Core?Или имеет значение только версия .NET?
У нас есть люди, которые думают, что проблема заключается в получении порта для прослушивания.Я попытался добавить .UseUrls()
в Program.cs
и добавить в порты Kestrel в appSettings.json
, но ничего не изменилось, и мы все еще получаем ту же ошибку.
Чтобы еще более запутать, наша текущая сборка работает нормальнона сервере QA, но не запускается в DEV.Иногда мы пытаемся опубликовать, и это работает в одной среде, но не в другой, а иногда это не удается в обеих.Мы выполняем те же шаги развертывания, и единственными отличиями являются файлы конфигурации.
Мы пробовали <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
и без.
Мы пробовали публикацию из VS и из dotnet publish
.
Мы пытались net stop was /y
net start w3svc
.
Мы даже восстановили сервер до более ранней точки, прежде чем начались эти проблемы.
На данный момент мы не можем найтилюбой шаблон, когда / почему некоторые развертывания будут запущены, а некоторые потерпят неудачу.Есть ли кто-нибудь, кто может внести свой вклад в это?