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.
5 Réponses :
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
Si je fais cela, j'obtiens: {"net_http_client_execution_error"} System.ServiceModel.Comm unicationException
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.
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>
Correction de l'installation ou de la mise à jour de Nuget System.Private.ServiceModel
Install-Package System.Private.ServiceModel -Version 4.7.0
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.
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