. NET Ошибка HTTP 500.31 в 32-разрядной (x86) версии ядра - ANCM не удалось найти собственные зависимости Общие решения этой проблемы Ошибка: - PullRequest
0 голосов
/ 27 мая 2020

Какие шаги мне следует предпринять для сборки и запуска. net базовое приложение веб-API в 32-битной среде / среде выполнения?

Это своего рода продолжение предыдущего вопроса публикация, которую я разместил.

Мы разработали приложение. NET Core Web API, используя следующие технологии:

- NET Core (3.1)

-Visual Studio 2019

К сожалению, мы должны развернуть указанное приложение в следующей среде:

-32-битная среда

- Windows Server 2008 R2 Enterprise (Service Pack 1 )

-IIS Version 7.5

-8 ГБ ОЗУ

(Кроме того, он должен быть в процессе, потому что нам нужен только. NET Приложение Core Web API должно находиться на сервере IIS) *

На моем компьютере разработки, на котором используется Visual Studio 2019, я установил Net Core 3.1 x86 версию sdk (т.е. NET Core 32 -Bit version)

Кроме того, в переменной Path переменной среды Windows 10 я убедился, что путь к каталогу. NET Core 32-разрядной версии указан над. NET Путь к каталогу 64-разрядной версии Core:

enter image description here

Следовательно в моей Visual Studio 2019 я открыл приложение. Кроме того, в разделе свойств раздела веб-приложения. NET Core Web Api я удостоверился, что выбрал значения параметров x86: принудительно переведите x86 в VS go в Свойства> Сборка и измените целевую платформу с любого процессора на x86. enter image description here

, а также для раздела отладки, у меня есть:

enter image description here

Кроме того, в Visual Studio 2019 Enterprises ---> Инструменты (в главном меню) Мы сняли флажок «Использовать 64-разрядную версию IIS Express для веб-сайтов и проектов»

enter image description here

Файл приложения blabhblah.csproj имеет следующие настройки:

 < Project Sdk="Microsoft.NET.Sdk.Web" >

   < PropertyGroup >
     < TargetFramework >netcoreapp3.1 < /TargetFramework >

     < AspNetCoreHostingModel > InProcess < /AspNetCoreHostingModel >

     < PlatformTarget > x86 < /PlatformTarget > 

  < /PropertyGroup >

   < PropertyGroup Condition="'$(MSBuildRuntimeType)' == 'Core'" >

      < GenerateResourceMSBuildArchitecture > CurrentArchitecture <  /GenerateResourceMSBuildArchitecture >

     < GenerateResourceMSBuildRuntime > CurrentRuntime < /GenerateResourceMSBuildRuntime >

   < /PropertyGroup >……………..


  < ItemGroup >

    < PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.7" / >

    < PackageReference Include="Microsoft.Data.SqlClient" Version="1.1.3" / >

    < PackageReference Include="Swashbuckle.AspNetCore" Version="5.4.1" / >

    < PackageReference Include="Swashbuckle.Core" Version="5.6.0" / >


  < /ItemGroup >

Кроме того, я создал файл Directory.Build.targets в каталоге root веб-приложение:

< Project >  
    < PropertyGroup 
      Condition="'$(OS)' == 'Windows_NT' and
                 '$(PlatformTarget)' == 'x86' and
                 '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and
                 '$(SelfContained)' != 'true'"
                   >

    < RunCommand >$(MSBuildProgramFiles32)\dotnet\dotnet< /RunCommand >   

< /PropertyGroup > 

< /Project >

Однако, когда я запускаю приложение, я получаю следующую ошибку:

Ошибка HTTP 500.31 - ANCM не удалось найти Собственные зависимости Общие решения этой проблемы: указанная версия Microsoft.NetCore.App или Micr osoft.AspNetCore.App не найден. Специфическая c ошибка, обнаруженная ANCM: не удалось выполнить, поскольку указанная команда или файл не были найдены. Возможные причины: * Вы неправильно написали встроенную команду do tnet. * Вы намеревались выполнить программу. NET Core, но tnet -% LAUNCHER_ARGS% не существует. * Вы намеревались запустить глобальный инструмент, но исполняемый файл с префиксом do tnet с таким именем не может быть найден в PATH. Шаги по устранению неполадок: проверьте журнал системных событий на наличие сообщений об ошибках. Включите регистрацию сообщений стандартного вывода процесса приложения. Присоедините отладчик к процессу приложения и проверьте. Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?LinkID=2028526

Может ли кто-нибудь помочь мне определить, как восстановить вышеупомянутую ошибку «do tnet»? Есть ли какие-либо другие изменения в настройках / конфигурациях, которые мне нужно внести?

1 Ответ

0 голосов
/ 28 мая 2020

@ akseli @omajid @ perry-qian-msft @ yongqing-yu Извините, это не сработало, нам пришлось отказаться от использования. NET Core технологии (и пришлось перейти на. NET Framework 4.7.2), потому что некоторое время он будет работать правильно, а затем даст нам ошибку 500, а затем ошибку 401. Я думаю, что это как-то связано с конфигурацией, потому что мы используем:

- NET Core (3.1)

-In-Process на сервере IIS

поэтому в автономном сервере IIS нам не нужно запускать. NET Приложение Core (3.1) в собственном пуле приложений как «Неуправляемый код», потому что все это находится в процессе и. NET Core (3.1) может работать в IIS. В любом случае у нас нет времени на решение этой проблемы, поэтому мы переходим на. NET Framework 4.7.2

@ akseli @omajid @ perry-qian-msft @ yongqing-yu Все Спасибо за все ваши ответы.
Технический руководитель моей группы нашел решение, указав в параметрах сборки. NET Core Web API Application значение «Any CPU» в Visual Studio 2019 (в Visual Studio 2019 щелкните правой кнопкой мыши на. NET Core Web API Application, затем выберите свойства в раскрывающемся контекстном меню, а затем, когда появится панель окна, вы выберите вкладку Build.) enter image description here

Также , на сервере IIS мой технический руководитель группы обеспечил его развертывание. NET В пуле приложений основного веб-API-API были следующие настройки (важно помнить, что это «Неуправляемый код»: enter image description here

...