.Net Core 2.2 Ошибка HTTP 500.30 - Ошибка при запуске ANCM - PullRequest
0 голосов
/ 03 апреля 2019

При размещении основного приложения mvc asp.net в центре обработки данных Windows Server 2016, работающем под управлением iis 10, приложение не загружается с сообщением HTTP Error 500.30 - Сбой при запуске ANCM

Я создал приложениес версией 2017.9 с использованием .net core 2.2, хотя я установил .net core 2.2.3 на сервере.

на сервере:

C: \ Users \ user1> dotnet -info

.NET Core SDK (отражает любой global.json): Версия: 2.2.105 Фиксация: 7cecb35b92

Среда выполнения: Имя ОС: Версия ОС Windows: 10.0.14393 ОСПлатформа: Windows RID: win10-x64 Базовый путь: C: \ Program Files \ dotnet \ sdk \ 2.2.105 \

Хост (полезно для поддержки): Версия: 2.2.3 Фиксация: 6b8ad509b6

.NET Core SDK установлены: 2.1.4 [C: \ Program Files \ dotnet \ sdk] 2.2.105 [C: \ Program Files \ dotnet \ sdk]

.NET Runtime установлен: Microsoft.AspNetCore.All 2.2.3 [C: \ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.2.3 [C: \ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.0.5 [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.7 [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] Microsoft.NETCore.App 2.2.3 [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App]

Чтобы установить дополнительные среды выполнения .NET Core или SDK: https://aka.ms/dotnet-download

Журнал событий приложений Windows показывает:

Приложение '/ LM / W3SVC / 3 / ROOT' с физическим корнем 'C: \ inetpub \ wwwroot \ healthmonitormvc \ 'не удалось загрузить clr и управляемое приложение.Неожиданное исключение: HRESULT 0x800700b7, возвращенный в c: \ b \ w \ da744fbcc13abce \ src \ servers \ iis \ aspnetcoremodulev2 \ inprocessrequesthandler \ inprocessapplication.cpp: 198

, есть несколько потоков об этом на GitHошибка и hresult, но без разрешения.

тот же код работает на локальном iis.myapp.exe также загружается (как и dotnet myapp.dll).так что, похоже, это проблема конфигурации iis (или дефект ядра .net, как указано на GitHub, который подразумевает, что я могу искать обходной путь).Файл stdout создан, но не имеет содержимого.

Этот проект является частью решения с неосновными проектами.тем не менее, я опубликовал проект с использованием веб-издателя, и он работает, как и ожидалось.

один поток stackoverflow рекомендовал изменить на OutOfProcess в качестве модели хостинга, но я НЕ ХОЧУ ИСПОЛЬЗОВАТЬ ИЗ ПРОЦЕССА.Он также не может загрузить с тем же результатом.это может быть случай, когда .net 2.2.3 сломан главным образом.но так как я могу запустить его локально, существует конфигурация, которая работает.

это web.config для приложения

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\my.name.space.HealthMonitor.Mvc.exe" arguments="exec &quot;.\my.anme.space.HealthMonitor.Mvc.dll&quot;" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
      </aspNetCore>
      </system.webServer>
  </location>
    <system.web>
        <compilation targetFramework="netcoreapp2.2" />
    </system.web>
</configuration>

Я ожидаю, что страница загрузится так же, как в iisexpress.или локальный, в котором отображается стандартная страница по умолчанию.

1 Ответ

0 голосов
/ 03 апреля 2019

Удаление переменной среды

<environmentVariables>
  <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="DEVELOPMENT" />
</environmentVariables>

вызывает загрузку страницы.Я не до конца понимаю почему.Очевидно, я не понимаю, как он взаимодействует с приложением (хотя я думал, что сделал).

набор серверов показывает:

>ASPNETCORE_ENVIRONMENT=Development

Я заметил, что редактор конфигурации IIS Manager показал РАЗРАБОТКУ вместе смоя разработка для той же переменной среды.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace My.Name.Space.HealthMonitor.Mvc
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.Configure<IISServerOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.AutomaticAuthentication = true;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

может быть, другой нуб принесет пользу.проблема в основном решена и показывает мне, что мне нужно лучше понять ASPNETCORE_ENVIRONMENT.конструктивные комментарии приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...