Я только что обновил свой сервер (Windows 2012R2) до .Net Core 1.0 RTM
пакета хостинга Windows с предыдущего .Net Core 1.0 RC2
. Мое приложение работает на моем компьютере без проблем, но сервер продолжает показывать:
HTTP Error 502.5 - Process Failure
Common causes of this issue:
The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port
Ранее он работал с версией RC2. Не знаю, что может пойти не так.
Это все, что говорит программа просмотра событий:
Failed to start process with the commandline 'dotnet .\MyWebApp.dll'. Error code = '0x80004005'.
Хуже всего то, что журналы приложений пусты! Я имею в виду, что файлы stdout_xxxxxxxxx.log полностью пусты и все имеют размер 0 байт.
Что я должен делать?? Как я могу узнать причину ошибки, если она не регистрируется?
c#
iis
asp.net-core
windows2012
Вахид Амири
источник
источник
Failed to start process with commandline 'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll', Error Code = '0x80004005'.
- та же командная строка и код ошибки, о которых вы сообщаете. Во-вторых, тот факт, что он работает на вашем компьютере, но не на удаленном, указывает на то, что на сервере что-то не так. Если бы вы могли подробнее рассказать о том, как приложение развертывается на сервере, это было бы полезно.Ответы:
Я смог исправить это, запустив
в командной строке, что дало мне гораздо более значимую ошибку:
Как видите, на моем сервере была установлена неправильная версия NET Core. Я смог запустить свое приложение после удаления предыдущей версии 1.0.0 и установки правильной версии 1.0.1.
источник
У меня была такая же проблема, в моем случае это было недостаточное разрешение удостоверения пользователя моего пула приложений при публикации на странице IIS документа asp.net, для этой ошибки указана пара причин:
buildOptions
для того,project.json
что конфликтов с издательскими РИД. Например, не указывайте платформу x86 и публикуйте с RID win81-x64 (dotnet publish -c Release -r win81-x64
). Проект будет опубликован без предупреждений или ошибок, но завершится ошибкой с указанными выше исключениями, зарегистрированными на сервере.processPath
атрибут<aspNetCore>
элемента в web.config, чтобы убедиться, что он предназначенdotnet
для переносимого приложения или. \ My_application.exe для автономного приложения.dotnet.exe
может быть недоступен через настройки PATH. Подтвердите, чтоC:\Program Files\dotnet\
существует в настройках ПУТЬ системы.dotnet.exe
может быть недоступен для удостоверения пользователя пула приложений. Убедитесь, что удостоверение пользователя AppPool имеет доступ кC:\Program Files\dotnet
каталогу..UseIISIntegration()
метод приложенияWebHostBuilder()
..UseUrls()
метод расширения при самостоятельном размещении с помощью Kestrel, убедитесь, что он расположен перед.UseIISIntegration()
методом расширенияWebHostBuilder()
..UseIISIntegration()
должен установитьUrl
для обратного прокси при запуске Kestrel за IIS и не иметь переопределения его значения.UseUrls()
.В моем случае это была четвертая причина, я изменил ее, щелкнув правой кнопкой мыши пул приложений, а в расширенных настройках в разделе Модель процесса я установил удостоверение для пользователя с достаточным разрешением:
источник
Failed to start process with commandline '"dotnet" .\PROJECT.dll', ErrorCode = '0x80070002'
.dotnet
был на моем пути, но для его распознавания потребовался перезапуск сервера.Я получил это, работая с полной перезагрузкой IIS (я только что установил пакет хостинга).
Оказывается, просто нажать «Перезагрузить» в диспетчере IIS недостаточно. Мне просто нужно было открыть командную строку и набрать iisreset.
источник
LocalSystem
Итак, у меня есть новый сервер, на этот раз Windows 2008R2, и мое приложение работает нормально.
Я не могу точно сказать, в чем проблема со старым сервером, но у меня есть одна идея.
Поскольку я ранее скомпилировал приложение без какой-либо платформы, оно дало мне
dll
версию, которая работает только в том случае, если на целевом хосте установлен.Net Core Windows Hosting
пакет. В моем случае он был установлен, и это было нормально .После того, как приложение перестало работать, я решил скомпилировать его как консольное приложение со
win7-x64
средой выполнения. На этот раз, когда я запустилexe
свое приложение на сервере, он вылетел с ошибкой об отсутствующей dll:Эта dll принадлежит универсальной среде выполнения C, которая входит в распространяемый пакет Visual C ++ для Visual Studio 2015 .
Я пытался установить этот пакет (как x64, так и x86), но каждый раз он терпел неудачу (не знаю почему) на Windows Server 2012 R2.
Но когда я попытался установить их на новый сервер Windows Server 2008 R2, они установились успешно. Возможно, это было причиной этого, но до сих пор не могу сказать наверняка.
источник
У меня была такая же проблема при публикации веб-приложения. Если у кого-то все еще есть эта проблема, исправьте ее, изменив {AppName} .runtimeconfig.json
Измените версию с «version»: «1.1.2» на «version»: «1.1.1», и все работает нормально.
источник
У меня такая же проблема.
Чтобы узнать его точный источник, я включил логин в файл web.config:
и создал подпапку журналов в корневой папке MyWebService.
После перезапуска IIS и попытки выполнить API я получил сообщение об ошибке и отсутствовала надлежащая Core Runtime. После загрузки установки DotNetCore.1.0.5_1.1.2-WindowsHosting ошибка исчезла.
источник
Была такая же проблема, и все решения не сработали. Нашел этот драгоценный камень и подумал, что пройду мимо, если он кому-то поможет. Установите на Server 2012 R2 с ошибкой отсутствия DLL, попробуйте переустановить VS C ++ 2015 и получите сообщение об ошибке. Исправление заключается в следующем:
Кажется, у файла
C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu
проблемы с установкой. Откройте командную строку администратора и выполните:ПРИМЕЧАНИЕ: замените "..." правильным именем папки. После этого переустановите пакет VS C ++ 2015.
источник
У меня была аналогичная проблема, и процитирую Шерлока Холмса: " Когда вы устранили невозможное, все, что остается, каким бы невероятным оно ни было, должно быть правдой? »
Я проверил, установлена ли на сервере платформа .NET, на которую я нацелился, и оказалось, что это не так. Я установил 4.6.2 .NET Framework, и все заработало.
источник
У меня возникла эта проблема на рабочем сервере после того, как мой проект VS был автоматически обновлен до .NET Core 1.1.2.
Я просто установил ядро среды выполнения 1.1.2 .net отсюда на свой рабочий сервер: https://www.microsoft.com/net/download/core#/runtime
источник
РЕШЕНО. Я столкнулся с той же проблемой сегодня при развертывании в AZURE. . Затем я попробовал то же самое для локального IIS, получил ту же проблему. Поскольку я новичок в .net CORE, я боролся за несколько часов, прежде чем я действительно решил это.
В нашем решении после публикации в IIS я наблюдал за своим файлом web.confile, особенно под строкой
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
В нашей папке развертывания сгенерированный файл web.config выглядит так:
<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll -argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
Теперь ПОЖАЛУЙСТА, попробуйте изменить указанную выше конфигурацию в решении Visual Studio на
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
В нашей новой папке развертывания сгенерированный файл web.config выглядит так:
<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
И это РЕШИТ мою проблему, надеюсь, это поможет.
источник
processPath="dotnet"
наprocessPath="C:\Program Files\dotnet\dotnet.exe"
. тогда это сработало.У меня была такая же проблема, когда я обновил свою машину разработчика до Core 1.0.1, но забыл обновить сервер.
источник
dotnet .\YOURPROJDLL.dll
Я получал ошибку HTTP 502.5 при попытке опубликовать свой .NET Core 2.0 API в AWS EB, и решил ее, добавив следующий код в .csproj:
источник
У меня была такая же проблема. Я изменил удостоверение пула приложений на учетную запись сетевой службы. Затем я явно установил путь к dotnet.exe в web.config, чтобы приложение работало правильно, как сказал @danielyewright в своем комментарии на github . Он работает после установки пути.
Спасибо
источник
В моем случае эта ошибка возникла из-за того, что я забыл обновить project.json с помощью:
источник
У меня была та же ошибка, о которой идет речь, с теми же проблемами, что описаны VSG24 в Предлагаемом ответе - неприятное сообщение об ошибке при вводе dotnet в CMD:
Я решил эту проблему, установив вручную следующие 2 обновления на Windows Server 2012 R2 (а также необходимые предварительные условия и все другие связанные обновления - внимательно прочтите инструкции по установке на веб-сайте Microsoft):
Надеюсь, это кому-то поможет.
источник
Я столкнулся с той же проблемой, когда пытался опубликовать отладочную версию своего веб-приложения. В этом наборе файлов нет файла
web.config
с нужным значением атрибутаprocessPath
.Я взял этот файл из Release версии, значение было присвоено пути к моему exe файлу.
источник
В моем случае проблема с установленной на сервере версией Net Core. Я просто устанавливаю ту же версию, что и на моей машине разработки, и все в порядке :-)
источник
Мне нужно было установить последнюю версию .NET Core, найденную здесь . Не нужно перезапускать сайт или сервер
источник
Я решил это, добавив «разрешение на редактирование» к приложению сайта, сопоставив его с физическим каталогом, а затем выбрав пользователя Windows, который мог бы иметь доступ к этой корневой папке. (частная сеть).
источник
В моем случае после установки
AspNetCore.2.0.6.RuntimePackageStore_x64.exe
иDotNetCore.2.0.6-WindowsHosting.exe
мне нужно перезапустить сервер, чтобы он работал без ошибки 502 плохого шлюза и прокси.ОБНОВИТЬ:
Есть способ использовать его без перезагрузки: https://stackoverflow.com/a/50808634/3634867
источник
Откройте командную строку с учетными данными администратора
Введите следующую команду и нажмите Enter
ИЛИ
Откройте Visual Studio 2017 с учетными данными администратора
Введите следующую команду в консоли диспетчера пакетов и нажмите Enter.
источник
Для меня это было вызвано установкой разных версий .Net Core. Я сопоставил свой сервер разработки и производственный сервер, и он сработал.
источник
У меня тоже была эта проблема (ошибка возникла как на VS 15, так и на 17). Однако на VS15 он вернул
CONNECTION_REFUSED
ошибку, а на VS17 - вернулASP.NET Core 1.0 on IIS error 502.5
.FIX
Перейдите в каталог вашего проекта и найдите скрытую папку
.vs
(она находится в папке проектов dir). (Не забудьте показать скрытые файлы / папки)Закрыть VS
источник
Вот что я понял, и это произошло недавно в Windows 10 после установки обновления. Насколько я понял, было установлено обновление Защитника Windows, предполагающее, что мой "Project.dll" (основной проект asp.net) ведет себя как вирус, поэтому он был удален.
Итак, одна из первых вещей, которые я предлагаю вам сделать, прежде чем вы начнете устанавливать / удалять файлы, - это проверить, чтобы убедиться, что ваш "Project.dll" находится там, где он должен быть.
Скопируйте его обратно в то место, если его там больше нет.
Если у вас возникли проблемы с копированием файла обратно, добавьте исключение в папку проекта в защитнике Windows . ( Узнайте, как это сделать, здесь .)
Это сработало для меня мгновенно, и я повторил это на нескольких серверах приложений.
источник
Для меня это было то, что connectionString в Startup.cs было нулевым в:
и он был пустым, потому что приложение не просматривало appsettings.json в поисках строки подключения.
Пришлось изменить Program.cs на:
источник
Я понятия не имею, почему это сработало для меня, но я использую проверку подлинности Windows, и у меня был этот фрагмент кода на моем
BuildWebHost
входеProgram.cs
:После удаления
.UserHttpSys
бита он теперь работает, и я все еще могу пройти аутентификацию как пользователь домена.BuildWebHost
теперь похожеисточник
Я получал ту же ошибку и обнаружил, что проблема заключалась в том, что во время публикации в Azure мой файл web.config был изменен, поэтому следующая строка выглядела так:
Проблема для производства заключается в содержании аргументов: "-argFile IISExeLauncherArgs.txt"
Похоже, что эта проблема будет решена в следующем .NET Core SDK (в настоящее время находится в предварительной версии), но на данный момент временным решением будет добавить этот блок в файл .csproj:
Это изменит файл web.config и удалит проблемную часть для публикации.
Ссылка: https://github.com/aspnet/websdk/issues/242
Надеюсь, поможет.
источник
У меня сработало после изменения конфигурации публикации.
источник
У меня была аналогичная проблема (Asp.Net Core 2.x), которая была вызвана попыткой запустить 32-разрядное приложение asp.net core в IIS на 64-разрядном сервере Windows. Основная причина заключалась в том, что автоматически сгенерированный файл web.config (если ваш проект не включает его явно, чего нет в основных проектах asp.net по умолчанию) не содержит полного пути к исполняемому файлу dotnet. Когда вы устанавливаете пакет хостинга на 64-битный компьютер, он устанавливает 64-битную и 32-битную версии dotnet, но путь по умолчанию разрешается на 64-битный, и ваше 32-битное основное приложение asp.net не загружается. В вашем браузере вы можете увидеть ошибку 502.5, и если вы посмотрите журнал событий сервера, вы можете увидеть код ошибки 0x80004005. Если вы попытаетесь запустить dotnet.exe из командной строки, чтобы загрузить dll основного приложения asp.net на этот сервер, вы можете увидеть ошибку типа «BadImageFormatException» или «
источник
У меня та же проблема, и причина в моем случае заключалась в том, что ядро EF пыталось прочитать строку подключения из
appsettings.development.json
файла. Я открыл его и обнаружил, что строка подключения была прокомментирована.Затем я отменил их, как показано ниже, и проблема решена:
источник