Système.ServiceModel pas trouvé .NET de Base du projet
J'ai un .NET de Base xUnit projet. Je suis en train d'appeler un service WCF, mais obtenir de l'exception suivante:
System.InvalidOperationException occurred
HResult=0x80131509
Message=An error occurred while loading attribute 'ServiceContractAttribute' on type 'IMyContract'. Please see InnerException for more details.
Inner Exception 1:
FileNotFoundException: Could not load file or assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The system cannot find the file specified.
Il fonctionne avec un Cadre de 4,7 projet avec le même Package Nuget System.ServiceModel.Http.4.3.0
.
System.ServiceModel
est déconseillée dans les deux .NET Standard et .NET de Base. Il a été remplacé par ASP.NET de Base. Peut-être que vous devez reconstruire votre service WCF pour être compatible avec .NET de Base.Je craignais qu'. A été documenté nulle part? C'est fou que je peux installer le même paquet dans différents cadres et obtenir un autre ensemble de fonctionnalités.
si c'est la réponse que de se sentir libre de le mettre vers le bas.
Voir Microsoft .NET de Référence de l'API site web pour plus d'informations sur ce qui est pris en charge .NET de Base et ce qui est .NET Framework
Apparemment, il semble que j'avais raison concernant le fait que est a été supprimé à partir du cadre principal lui-même; avec cela à l'esprit, il est profondément regrettable que j'ai dit qu'il n'y a pas de solution à cela, alors qu'en fait, Microsoft avait fait les assemblées compétentes disponibles sur NuGet comme des paquets facultatifs à la place. N'hésitez pas à changer mes accepté de répondre à celui qui a le plus upvotes ci-dessous.
OriginalL'auteur BanksySan | 2017-08-07
Vous devez vous connecter pour publier un commentaire.
Microsoft a mis à disposition les assemblées comme sur NuGet packages maintenant.
Système.ServiceModel.Primitives est le package de base; en ajouter d'autres si nécessaires à votre projet.
type 'IDispatchMessageInspector" et "IServiceBehavior' ne trouve pas dans le Système.ServiceModel'. une idée de comment résoudre _channelFactory.Point de terminaison.EndpointBehaviors.Add(new CustomInspectorBehavior());
Pour ceux qui se demandent, comme je l'ai fait, pourquoi cette réponse a tellement de downvotes, il a été mis à jour avec de complètement différent de l'information.
OriginalL'auteur silkfire
Si vous utilisez
.NET Standard 2.0
(c'est ce que j'ai testé avec), vous pouvez installer compatibleNuGet
paquets.Le service de base modèle est disponible en
System.ServiceModel.Primitives
(actuellement v4.4.0).Si nécessaire, installez
System.ServiceModel.Http
.Lors de l'ajout de ces références lors de l'utilisation
netcoreapp2.0
. L'erreur suivante est lancée:System.PlatformNotSupportedException: Configuration files are not supported.
.OriginalL'auteur Arghya C
La Microsoft Service Web WCF Référence Fournisseur enveloppements SvcUtil.exe et va générer un .NET de projet Standard à partir de votre point de terminaison. Regardez dans le fichier de projet et vous verrez la ServiceModel références qui va travailler pour vous.
Quand j'ai eu besoin de faire cela, j'ai été en mesure d'utiliser la classe générée bibliothèque dans mon .NET de Base du projet.
Le lien ne pointe pas vers une page web existante plus
Grâce à CWagner le lien a été mis à jour.
Ou,
dotnet svcutil
si vous voulez de la ligne de commande de contrôle: docs.microsoft.com/da-dk/dotnet/core/additional-tools/...OriginalL'auteur Boggin