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 92

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):

  1. KB2919355
  2. 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.

исправить

  1. перейдите в папку проекта и найдите скрытую папку .vs (он находится в папке проектов dir). (Не забудьте показать скрытые файлы / папки)

  2. закрыть против

  3. удалить .против-папку
  4. начать Против, как админ (.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 &quot;(Get-Content '$(PublishDir)Web.config').replace(' -argFile IISExeLauncherArgs.txt', '') | Set-Content '$(PublishDir)Web.config'&quot;" />
  </Target>

это изменит веб.сконфигурируйте и удалите проблемную часть для публикации.

Ссылка:https://github.com/aspnet/websdk/issues/242

надеюсь, что это помогает.