5
votes

Impossible de charger le fichier ou l'assembly 'System.Private.ServiceModel' dans Azure Function v2

J'ai utilisé une fonction azure v2 (fonction durable) avec une dll personnalisée (.net core 2.2) qui appelle un service et j'obtiens l'exception suivante:

Impossible de charger le fichier ou l'assembly 'System.Private.ServiceModel, Version = 4.1.2.4, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

Dans le processus de débogage, je ne peux pas entrer dans la méthode et l'exception est levée sans me laisser entrer et je ne sais pas exactement ce qui a essayé d'accéder à cette bibliothèque. Mettre manuellement le package de .nuget dans le dossier bin ne fonctionnait pas et la chose étrange est que si une exécution du même code avec un exemple de fonction C # cela fonctionne.


0 commentaires

5 Réponses :


0
votes

Essayez de vérifier dans votre cs.proj si System.Private.ServiceModel.dll est implémenté, si ce n'est pas le cas, vous pouvez vous référer à cette solution: https://github.com/dotnet/wcf/issues/2824


1 commentaires

Si je fais cela, j'obtiens: {"net_http_client_execution_error"} System.ServiceModel.Comm‌ unicationException



1
votes

Il y a un gros fil à ce sujet sur github . J'ai ajouté l'événement PostBuild comme dans ce fil, mais j'étais toujours en difficulté dans le pipeline de construction CI / CD. En fin de compte, j'ai également ajouté une action de script de ligne cmd dans le pipeline de construction après l'étape "Build Solution" avec le code suivant:

copy $(Agent.TempDirectory)\WebAppContent\bin\runtimes\win\lib\netstandard2.0\System.Private.ServiceModel.dll $(Agent.TempDirectory)\WebAppContent\bin\System.Private.ServiceModel.dll 

Cette solution ne semble pas si propre mais cela a fonctionné pour moi.


0 commentaires

6
votes

Ce problème est détaillé ici: https://github.com/dotnet/wcf/issues/2824

Comment je l'ai résolu, c'était de télécharger le nuget System.Private.ServiceModel

et ajoutez ce qui suit à mon .csproj

<Target Name="CopySPSM" BeforeTargets="Build">
<Copy SourceFiles="$(USERPROFILE)\.nuget\packages\system.private.servicemodel\4.5.3\runtimes\win\lib\netstandard2.0\System.Private.ServiceModel.dll" DestinationFolder="$(OutputPath)\bin" />
</Target>


0 commentaires

4
votes

Correction de l'installation ou de la mise à jour de Nuget System.Private.ServiceModel

Install-Package System.Private.ServiceModel -Version 4.7.0

https://www.nuget.org/packages/System.Private.ServiceModel/


1 commentaires

J'ai eu un projet exécuté sur IIS en utilisant asp.net core 3.1. Lorsque le site Web a été publié, j'ai eu cette erreur et je l'ai corrigé en l'installant.



0
votes

Je l'ai obtenu avec une application Blazor 3.1. Fonctionne bien localement, mais, une fois déployé sur Azure, j'obtiens:

System.IO.FileNotFoundException: impossible de charger le fichier ou l'assembly 'System.Private.ServiceModel

Pour résoudre ce problème, dans le profil de publication, dans Visual Studio, j'ai changé le runtime cible de win-x86 en portable

entrez la description de l'image ici


0 commentaires