4 votes

Publier le site Web ASP.Net Core 2.1preview2 sur IIS local MSB3030 *.PrecompiledViews.dll

Mise à jour 1

Avec les commentaires de @Priyesh Kumar, j'ai utilisé la commande suivante à partir du dossier racine du site web (celui qui contient *.csproj pour le site web). Cela a fonctionné. J'ai ensuite copié les fichiers de contenu "win10-x64" dans le dossier c : \www\sigex.com.

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

Je rencontre actuellement quelques problèmes différents, mais je vais les résoudre et poster la solution.

Poste original

Bonjour, j'essaie de publier mon site web localement dans IIS (un site que j'ai créé dans IIS manager). J'utilise l'option de publication par clic droit dans Visual Studio.

Dans IIS Manager, mes paramètres sont les suivants ;

enter image description here

Pour le pool d'applications, j'ai les éléments suivants

enter image description here

Lorsque je clique sur "Publier" et que je sélectionne "IIS, FTP, etc", je clique sur "Publier". Je saisis ensuite les paramètres comme "Publish method : Système de fichiers". Je règle l'emplacement cible sur " C:\www\sigex.com ". J'ai utilisé "127.0.0.1 sigex.com" dans le "c." : \windows\system32\drivers\etc\hosts "pour utiliser ce domaine localement (cela fonctionne bien).

Les paramètres de publication sont présentés ci-dessous ;

enter image description here enter image description here

Après avoir défini la configuration de la publication, j'obtiens la boîte d'alerte suivante ;

enter image description here

Le fichier tmp contient le contenu suivant ;

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.<---

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

Dans l'activité "Web Publish Activity", j'obtiens ce qui suit ;

https://pastebin.com/QRsvhTHU

Quelqu'un peut-il m'aider à comprendre où je me trompe ? J'ai trouvé ce message ici qui dit qu'ils ont le même problème.

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

Cependant, ils ont dit que cela ne se produit que lorsque

<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>

est défini dans le fichier *.csproj. Je n'ai pas ce qui précède dans mon *.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>

J'ai essayé de sélectionner x86 comme cible cpu mais cela n'a fait aucune différence. Veuillez m'aider.

5voto

Priyesh Kumar Points 2174

Essayez de publier en utilisant la commande dotnet cli

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

-c : Publier la configuration, Release|Debug

-r : Environnement d'exécution ciblé. Liste complète aquí

-- autonome : Télécharge et crée un paquet autonome qui peut être exécuté sans dotnet sdk.

  1. Copier le dossier dans bin/Release/netcoreapp2.1/win10-x64/publish où web.config est présent à votre emplacement de déploiement.
  2. Assurez-vous d'installer Dotnet core pack d'hébergement pour IIS.
  3. Redémarrer le IIS
  4. Créer un nouveau pool avec la version .NET CLR comme No Managed Code
  5. Donnez la permission de lire/écrire à IIS_IUSRS y IUSR .
  6. Créez un nouveau site web avec le pool d'applications ci-dessus et l'emplacement du code.

Lire l'officiel docs .

Vous pourriez également être intéressé par CORS. Installez IIS cors à partir de aquí .

Note : Toutes les versions sont spécifiques au système de l'OP. Assurez-vous de remplacer les versions. Note : Assurez-vous que vous avez mis à jour Visual studio pour supporter dotnet core.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X