ASP.NET ядро 1.0 на IIS ошибка 502.5
Я только что обновил свой сервер (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.файлы журнала полностью пусты и все они имеют размер 0 байт.
что делать?? Как я могу узнать причину ошибки, когда она не регистрируется??
25 ответов:
Я смог это исправить, запустив
"C:\Program файлы\dotnet\dotnet.exe" "C:\fullpath\PROJECT.DLL-файл"
в командной строке, которая дала мне гораздо более значимую ошибку:
"указанный фреймворк' Microsoft.NETCore.Приложение', 'версия 1.0.1 была не найдено. - Проверьте зависимости приложений и целевой версии платформы, установленной на: C:\Program файлы\dotnet\shared\Microsoft.NETCore.Приложение - Этот установлены следующие версии : 1.0.0 - Кроме того, установите версию фреймворка '1.0.1'.
Как вы можете видеть, у меня была неправильная версия NET Core, установленная на моем сервере. Я смог запустить свое приложение после удаления предыдущей версии 1.0.0 и установки правильной версии 1.0.1.
у меня была та же проблема, в моем случае это было недостаточное разрешение идентификатора пользователя моего пула приложений, на публикация в IIS страница asp.net док, есть несколько причин, перечисленных для этой ошибки:
- если вы опубликовали автономное приложение, убедитесь, что вы не установили платформу в
buildOptions
наproject.json
это противоречит публикации RID. Например, не указывайте платформу x86 и публикуйте с избавлением от win81-x64 (dotnet publish -c Release -r win81-x64
). Проект будет публиковаться без предупреждения или ошибки, но с ошибкой выше зарегистрированных исключений на сервере.- Регистрация на
<aspNetCore>
элемент в web.config, чтобы подтвердить, что этоdotnet
для портативного приложения или .\мое приложение.exe для автономного приложения.- для портативного приложения,
dotnet.exe
может быть недоступно через настройки пути. Подтверждаю, чтоC:\Program Files\dotnet\
существует в системном пути настройки.- для портативного приложения,
dotnet.exe
может быть недоступно для удостоверения пользователя пула приложений. Убедитесь, что пул приложений идентификатора пользователя имеет доступ к
Я получил эту работу с жестким сбросом IIS (я только что установил пакет хостинга).
оказывается, что просто нажать "Перезагрузка" в Диспетчере IIS недостаточно. Мне просто нужно было открыть командную строку и ввести "iisreset"
так что я получил новый сервер, на этот раз это Windows 2008R2 и мое приложение работает нормально.
Я не могу сказать точно, что проблема была со старым сервером, но у меня есть одна идея.
так потому что я ранее скомпилировал приложение без любая платформа в виду это дало мне
dll
версия, которая работает только если у цели есть.Net Core Windows Hosting
пакет установлен. В моем случае это было установлен, и это было прекрасно.после того как приложение не работает Я решил скомпилировать его как консольное приложение с
win7-x64
как во время выполнения. На этот раз в тот момент, когда я побежалexe
моего приложения на сервере, он разбился с ошибкой о недостающей dll:The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing
эта dll из универсальной среды выполнения C, которая включена в Visual C++ распространяемый для Visual Studio 2015.
Я попытался установить этот пакет (как x64 & x86), но он не удался каждый раз (не знаю почему) на Windows Server 2012 R2.
но когда я попытался установить их на новом сервере, Windows Server 2008 R2, они успешно установлены. Возможно, это и было причиной этого, но все еще не могу сказать наверняка.
У меня была такая же проблема при публикации веб-приложения. Если у кого-то еще есть эта проблема, исправьте ее, изменив {Имя_приложения}.runtimeconfig.json
{ "runtimeOptions": { "framework": { "name": "Microsoft.NETCore.App", "version": "1.1.2" }, "configProperties": { "System.GC.Server": true } } }
изменить версию "версия": "1.1.2" до "версия": "1.1.1" и все работало нормально
У меня была та же проблема.
чтобы узнать точный источник его я включил вход в систему сеть.конфигурационный файл:
<aspNetCore processPath="dotnet" arguments=".\MyWebService.dll" stdoutLogEnabled="**true**" stdoutLogFile=".\logs\stdout" />
и создал подпапку журналов в корневой папке MyWebService.
после перезагрузки IIS и попытки выполнить API я получил ошибку, и она отсутствовала в правильной основной среде выполнения. После загрузки установки DotNetCore.1.0.5_1.1.2-WindowsHosting ошибка исчезла.
была такая же проблема и все решения не работают. Нашел этот камень и подумал, что я передам его, если это поможет кому-то еще. Установите на сервере 2012 R2 получение DLL отсутствует ошибка, попробуйте переустановить VS C++ 2015 и получить сообщение об ошибке. Исправление заключается в следующем:
Кажется файла
C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu
имеет проблемы с установкой. Откройте командную строку администратора do:c: mkdir tmp mkdir tmp\tmp move "C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu" c:\tmp expand -F:* c:\tmp\Windows8.1-KB2999226-x64.msu c:\tmp\tmp dism /online /add-package /packagepath:c:\tmp\tmp\Windows8.1-KB2999226-x64.cab
Примечание: замените "...- с правильным именем папки. После этого переустановите VS C++ 2015 пакет.
Я получил эту проблему на моем рабочем сервере после того, как мой проект VS был автоматически обновлен до .NET Core 1.1.2.
Я просто установил 1.1.2 .net core runtime отсюда на моем рабочем сервере:https://www.microsoft.com/net/download/core#/runtime
решить Я только что пробежал через ту же проблему сегодня при развертывании в AZURE. Затем я попробовал то же самое для локальных IIS, получил ту же проблему. Поскольку я новичок в .net CORE, боролся за несколько часов, прежде чем я действительно решил его.
в нашем решении, после публикации в IIS, я наблюдал за своей сетью.confile файл, особенно ниже строки
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
в нашей папке развертывания созданного веб.конфигурация выглядит так:
<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" />
в нашей новой папке развертывания созданного веб.конфигурация выглядит так:
<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
и это решило мою проблему, надеюсь, что это поможет.
У меня была та же проблема, когда я обновил свою машину dev до Core 1.0.1, но забыл обновить сервер.
У меня была похожая проблема, и процитировать Шерлока Холмса: ""
Я проверил, если .Net на которую я рассчитывала, была установлена на сервере, а оказывается это не так. Я установил 4.6.2 .NET и он работал.
У меня была такая же проблема . Я изменил идентификатор пула приложений на учетную запись сетевой службы . Затем я явно установил путь к dotnet.exe в интернете.config для приложения, чтобы работать должным образом, как @danielyewright сказал в его github комментарий . Он работает после установки пути.
спасибо
поделиться, что в моем случае эта ошибка была потому что я забыл обновить .json С:
"buildOptions": { "emitEntryPoint": true }
У меня была та же ошибка в вопросе, с теми же проблемами, как описано VSG24 в предложенном ответе-неприятное сообщение об ошибке при вводе "dotnet" в CMD:
программа не может запуститься, потому что api-ms-win-crt-runtime-l1-1-0.dll отсутствует
Я решил эту проблему, вручную установив следующие 2 обновления на Windows Server 2012 R2 (и предварительные условия и все другие обновления связаны-внимательно прочитайте инструкцию по установке на веб-сайте Microsoft):
- KB2919355
- KB2999226
надеюсь, это кому-то поможет.
я столкнулась с той же проблемой, когда я пытался опубликовать отладочную версию моего веб-приложения. Этот набор файлов не содержит файл
web.config
С правильным значением атрибутаprocessPath
.Я взял этот файл из версии выпуска, значение было присвоено пути к моему exe-файлу.
<aspNetCore processPath=".\My.Web.App.exe" ... />
в моем случае была проблема с версией Net Core, установленной на сервере. Я просто устанавливаю ту же версию, что и на моей машине разработки, и все в порядке : -)
Я получал HTTP-ошибку 502.5 при попытке опубликовать мой .NET Core 2.0 API в AWS EB и решил ее, добавив следующий код .csproj:
<PropertyGroup> <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest> </PropertyGroup>
Мне нужно было установить последнюю найденную версию .net Core здесь. Нет необходимости перезапускать сайт или сервер
Я решил это, добавив "разрешение на редактирование" в приложение сайта, сопоставленное с физическим каталогом, а затем выбрал пользователя windows, который может иметь доступ к этой корневой папке. (частная сеть.)
в моем случае, после установки
AspNetCore.2.0.6.RuntimePackageStore_x64.exe
иDotNetCore.2.0.6-WindowsHosting.exe
, Я хочу перезагрузка сервера чтобы он работал без ошибки 502 bad gateway и proxy.обновление:
есть способ использовать его без перезагрузки: https://stackoverflow.com/a/50808634/3634867
у меня тоже была эта проблема (ошибка произошла как на VS 15, так и на 17). Однако на артикул: vs15 он вернулся в
CONNECTION_REFUSED
ошибка и на VS17 он вернулсяASP.NET Core 1.0 on IIS error 502.5
.исправить
перейдите в папку проекта и найдите скрытую папку
.vs
(он находится в папке проектов dir). (Не забудьте показать скрытые файлы / папки)закрыть против
- удалить .против-папку
- начать Против, как админ (.vs-папка будет воссоздана VS)
вот что я понял, и это произошло недавно на Windows 10 после установки обновления. Из того, что я собрал, было установлено обновление Защитника Windows, которое предполагало мой "проект.dll " (an asp.net core project) вел себя как вирус, поэтому он был удален.
Итак, одна из первых вещей, которые я предлагаю вам сделать, прежде чем начать установку/удаление материалов, - это проверить подтвердите ваш проект".dll " находится там, где он должен быть.
скопируйте его обратно в расположение, если его больше нет.
Если вы возникли трудности с копированием файла обратно добавить исключение в папку проекта в Защитнике windows. (узнайте, как это сделать здесь. )
Это сработало для меня мгновенно, и я повторил его через несколько серверов приложений.
для меня это было то, что connectionString в запуске.cs был null в:
services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
и это было null, потому что приложение не просматривало appsettings.json для строки подключения.
пришлось менять программу.cs to:
public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration((context, builder) => builder.SetBasePath(context.HostingEnvironment.ContentRootPath) .AddJsonFile("appsettings.json").Build()) .UseStartup<Startup>().Build();
Я понятия не имею, почему это сработало для меня, но я использую проверку подлинности Windows, и у меня был этот бит кода на моем
BuildWebHost
наProgram.cs
:.UseStartup<Startup>() .UseHttpSys(options => { options.Authentication.Schemes = AuthenticationSchemes.NTLM | AuthenticationSchemes.Negotiate; options.Authentication.AllowAnonymous = false; }) .Build();
после удаления
.UserHttpSys
бит, теперь он работает, и я все еще могу аутентифицироваться как пользователь домена.
BuildWebHost
сейчас выглядит так:public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build();
Я получал ту же ошибку, и обнаружил, что проблема заключалась в том, что во время публикации в Azure мой web.конфигурации файл был изменен, так что эта следующая строка оказалась такой:
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" startupTimeLimit="3600" requestTimeout="23:00:00" />
проблема для производства содержание аргументов: " - argFile IISExeLauncherArgs.txt"
похоже, что эта проблема будет решена в следующем пакете SDK .NET Core (в настоящее время в предварительном просмотре), но на данный момент обходной путь чтобы добавить этот блок .файл csproj:
<Target Name="bug_242_workaround" AfterTargets="_TransformWebConfig"> <Exec Command="powershell "(Get-Content '$(PublishDir)Web.config').replace(' -argFile IISExeLauncherArgs.txt', '') | Set-Content '$(PublishDir)Web.config'"" /> </Target>
это изменит веб.сконфигурируйте и удалите проблемную часть для публикации.
Ссылка:https://github.com/aspnet/websdk/issues/242
надеюсь, что это помогает.