Публикация веб-сайта ASP.Net Core 2.1preview2 на локальном IIS MSB3030 * .PrecompiledViews.dll - PullRequest
0 голосов
/ 03 июня 2018

Обновление 1

С обратной связью @Priyesh Kumar я использовал следующую команду из корневой папки веб-сайтов (ту, которая имеет * .csproj для веб-сайта).Это сработало.Затем я скопировал файлы содержимого "win10-x64" в c: \ www \ sigex.com.

 dotnet publish -c Release -r win10-x64 --self-contained

Сейчас я сталкиваюсь с несколькими различными проблемами, но исправлю их, а затем отправлю решение.

Исходное сообщение

Привет! Я пытаюсь опубликовать свой сайт локально в IIS (сайт, который я создал в диспетчере IIS).Я использую опцию публикации правой кнопкой мыши в Visual Studio.

В IIS Manager мои настройки:

enter image description here

Для пула приложенийУ меня есть следующее

enter image description here

Когда я нажимаю «Опубликовать» и выбираю «IIS, FTP и т. Д.» И нажимаю «Опубликовать».Затем я ввожу настройки как «Метод публикации: Файловая система».Я установил целевое местоположение "C: \ www \ sigex.com".Я использовал «127.0.0.1 sigex.com» в файле «c: \ windows \ system32 \ drivers \ etc \ hosts» для локального использования этого домена (это нормально работает).

Отображаются настройки публикацииниже;

enter image description here enter image description here

После настройки конфигурации публикации появляется следующее окно предупреждения;

enter image description here

В файле tmp содержится следующее содержимое:

03/06/2018 17:10:54
System.AggregateException: One or more errors occurred. ---> System.Exception: Build failed. Check the Output window for more details.
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass41_0.<PublishAsync>b__2()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__116.MoveNext()
---> (Inner Exception #0) System.Exception: Build failed. Check the Output window for more details.<---

===================

Внутри "Действия веб-публикации" я получаю следующее:

https://pastebin.com/QRsvhTHU

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

https://github.com/dotnet/core/issues/1039

Однако они сказали, что это происходит только тогда, когда

<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>

установлен в* .csproj.У меня нет этого в моем * .csproj

    <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
        <UserSecretsId>aspnet-Onion.Website-23EA0CB5-7C55-42E5-80E3-8CD26CCDBA6C</UserSecretsId>
    </PropertyGroup>


    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0-preview1-final" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0-preview1-final" PrivateAssets="All" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0-preview1-final" PrivateAssets="All" />
    </ItemGroup>

    <ItemGroup>
        <!-- obsolete references -->
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0-preview1-final" />
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0-preview1-final" />
        <!--<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.0-preview1-final" />-->
        <!--<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.2" />-->
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.1.0-preview1-final" />
    </ItemGroup>

    <ItemGroup>
        <ProjectReference Include="..\Onion.Repositories\Onion.Repositories.csproj" />
        <ProjectReference Include="..\Onion.Services\Onion.Services.csproj" />
    </ItemGroup>

</Project>

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

1 Ответ

0 голосов
/ 03 июня 2018

Попробуйте опубликовать с помощью команды dotnet cli

  1. dotnet publish -c Release -r win10-x64 --self-contained

-c: опубликовать конфигурацию, выпуск | Отладка

-r: Целевая среда выполнения.Полный список здесь

- автономный: загружает и создает автономный пакет, который может быть запущен без dotnet sdk.

Скопируйте папку в bin/Release/netcoreapp2.1/win10-x64/publish, где файл web.config присутствует в вашем месте развертывания. Обязательно установите пакет Dotnet core для IIS. Перезапустите IIS Создайте новый пул с версией .NET CLR как No Managed Code Дайте разрешение на чтение / запись для IIS_IUSRS и IUSR. Создание новоговеб-сайт с указанным выше пулом приложений и местоположением кода.

Официальный документы .

Вас может заинтересовать также CORS.Установите IIS cors с здесь .

Примечание. Все версии относятся к системе OP.Обязательно замените версии.Примечание. Убедитесь, что вы обновили Visual Studio для поддержки ядра dotnet

.
...