ASP. NET Ошибка развертывания основного приложения на собственном сервере. - PullRequest
0 голосов
/ 04 февраля 2020

После публикации приложения с использованием Visual Studio 2019 при переключении на страницу индекса моего приложения возникла ошибка.

У меня было следующее исключение: InvalidOperationException: Не удалось найти расположение библиотеки компиляции для пакета 'Microsoft.As pNet .WebApi.Client '

Существует трассировка стека исключительной ситуации:

Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths (преобразователь ICompilationAssemblyResolver, список сборок) Microsoft.Extenill. ResolveReferencePaths () Microsoft.AspNetCore. Mvc .ApplicationParts.AssemblyPart + <> c .b__8_0 (библиотека CompilationLibrary) System.Linq.Enumerable + SelectManySingleSelectorIterator.MoveNext () Microsoft.AspNetCilataReor. PopulateFeature (элементы IEnumerable, функция MetadataReferenceFeature) Microsoft.AspNetCore. Mvc .ApplicationParts.ApplicationPartManager.PopulateFeature (функция TFeature) Microsoft.AspNetCore. Mvc. Razor.Internal.DefaultRazorReferenceManager.GetCompilationReferences () System.Threading.LazyInitializer.EnsureInitializedCore (ref цель, ref bool инициализирован, объект ref syncLock, Fun c valueFactory) () Microsoft .AspNetCore. Mvc .Razor.Internal.LazyMetadataReferenceFeature.get_References () .Language.RazorEnginePhaseBase.Execute (RazorCodeDocument codeDocument) Microsoft.AspNetCore.Razor.Language.DefaultRazorEngine.Process (RazorCodeDocument) Процесс (RazorProjectItem projectItem) Microsoft.AspNetCore. Mvc .Ra zor.Internal. .AspNetCore. Mvc .Razor.RazorViewEngine. Razor.RazorViewEngine. FindView (контекст ActionContext, строка viewName, bool isMainPage) Microsoft.AspNetCore. Mvc .ViewFeatures.ViewResultExecutor.FindView (Actio nContext actionContext, ViewResult viewResult) Microsoft.AspNetCore. Mvc .ViewFeatures.ViewResultExecutor.ExecuteAsyn c (контекст ActionContext, результат ViewResult) Microsoft.AspNetCore. Mvc .ViewResult.ExecuteResultAsyn.Axt.ExCase.Net * 1039Net . Mvc .Internal.ResourceInvoker.InvokeResultAsyn c (результат IActionResult) Microsoft.AspNetCore. Mvc .Internal.ResourceInvoker.InvokeNextResultFilterAsyn c () Microsoft.AspNetCore. Mvc .InxtRec. context) Microsoft.AspNetCore. Mvc .Internal.ResourceInvoker.ResultNext (ref State следующий, ref Scope scope, ref состояние объекта, ref bool isCompleted) Microsoft.AspNetCore. Mvc .Internal.ResourceInvoker.InvokeResultFilters () Microsoft.AspNetCore . Mvc .Internal.ResourceInvoker.InvokeNextResourceFilter () Microsoft.AspNetCore. Mvc. Internal.ResourceInvoker.Rethrow (контекст ResourceExecutedContext) Microsoft.AspNetCore. Mvc .Internal.ResourceInvoker.Next (ref State следующий, ref Область действия, ref ref состояние объекта, ref bool isCompleted) Microsoft.AspNetCore. Mvc .Internal.ResourceInvoker .InvokeFilterPipelineAsyn c () Майкрософт.AspNetCore. Mvc .Internal.ResourceInvoker.InvokeAsyn c () ) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke (контекст HttpContext). Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke (контекст HttpContext). изменил файл csproj, но ничего не помогло.

Есть файл web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false">
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>

Есть мой файл csproj:

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

<PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <GeneratePackageOnBuild>false</GeneratePackageOnBuild> 
    <!-- Fix for"System.InvalidOperationException: Cannot find compilation library location for package 'Microsoft.AspNet.WebApi.Client'" -->
    <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
</PropertyGroup>

<ItemGroup>
    <Compile Remove="Migrations\***.cs" />
    <Compile Remove="Migrations\***.cs" />
</ItemGroup>

<ItemGroup>
    <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
    <PackageReference Include="Microsoft.AspNetCore.App">
        <PrivateAssets Condition="'%(PackageReference.Version)' == ''">all</PrivateAssets>
        <Publish Condition="'%(PackageReference.Version)' == ''">true</Publish>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="3.1.1" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.7.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.6" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.4" />
</ItemGroup>

</Project>

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

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Я считаю, что это связано с вашими настройками Publi sh. Файл, о котором идет речь, не попадает на сервер. Вы можете сделать следующее:

В окне Publi sh в разделе «Настройки» вы можете выбрать Deployment Mode = Self contained

Альтернативное решение - если это обновление сайта до. NET Core 2 из 1

(источник: Ошибка на опубликованном базовом сайте ASP. NET: не удается найти расположение библиотеки компиляции для пакета 'Microsoft.As pNet .WebApi.Client' )

  • Возможно, вам придется остановить приложение
  • Очистить папку wwwroot - старые DLL могут быть оставлены после старых версий.
  • повторно загрузить / развернуть
0 голосов
/ 04 февраля 2020

Попробуйте добавить это в свой файл csproj -

<MvcRazorExcludeRefAssembliesFromPublish>False</MvcRazorExcludeRefAssembliesFromPublish>

Согласно https://github.com/dotnet/roslyn/issues/37760#issuecomment -518783156

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