System.ServiceModel niet gevonden in .NET Core-project

Ik heb een .NET Core xUnit-project. Ik probeer er een WCF-service van te bellen, maar krijg de volgende uitzondering:

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.

Het werkt met een Framework 4.7-project met hetzelfde Nuget-pakket System.ServiceModel.Http.4.3.0.


Antwoord 1, autoriteit 100%

Microsoft heeft de relevante assemblages nu beschikbaar gemaakt als pakketten op NuGet.

System.ServiceModel.Primitivesis het basispakket; voeg indien nodig de andere toe aan uw project.

voer hier de afbeeldingsbeschrijving in


Antwoord 2, autoriteit 65%

Als je .NET Standard 2.0gebruikt (daar heb ik mee getest), kun je compatibele NuGet-pakketten installeren.

Het basisservicemodel is beschikbaar in System.ServiceModel.Primitives(momenteel v4.4.0).

Installeer indien nodig ook System.ServiceModel.Http.


Antwoord 3, autoriteit 12%

De Microsoft WCF Web Service Reference Providerwikkelt SvcUtil.exe in en genereert een .NET Standard-project vanaf uw eindpunt. Kijk in het projectbestand en u zult de ServiceModel-referenties zien die voor u werken.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard1.4</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="System.ServiceModel.Duplex" Version="4.3.0" />
    <PackageReference Include="System.ServiceModel.Http" Version="4.3.0" />
    <PackageReference Include="System.ServiceModel.NetTcp" Version="4.3.0" />
    <PackageReference Include="System.ServiceModel.Security" Version="4.3.0" />
    <PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0" />
  </ItemGroup>
</Project>

Toen ik dit moest doen, kon ik de gegenereerde klassenbibliotheek gebruiken in mijn .NET Core-project.


Antwoord 4

Ik had hetzelfde probleem, ik moest een .asmx-webservice toevoegen aan mijn asp.net-kernproject van de klassenbibliotheek, ik probeerde een verwijzing rechtstreeks toe te voegen door de optie verbonden service toe te voegen, maar ik kon geen configuratiebestand en veel verwijzingen zien ook fouten, hieronder zijn de stappen waarmee ik mijn probleem oplos.

1-Maak bibliotheekprojectnaam Servicetoewijzing
2-Maak de map Web References aan en maak vervolgens de binnenmap ClientHotel
3-Open terminal in visuele studio vanuit het zicht —> terminal — opdrachtprompt.
4-Integreer asmx-service op commando
svcutil http://abctest.asmx(.asmx-URL)
binnen in de ClientHotel-map.

5-it zal .cs klasse en output.config bestand maken met daarin verwijzingen.
6-Nu had ik fouten van verwijzingen zoals
het type of naamruimte servicecontractattribuut bestaat niet in naamruimte System.ServiceModel enz.

7-installatiepakket System.ServiceModel.Primitives
Dan zijn alle referentiefouten verdwenen.

Zo kon ik de .asmx-service toevoegen aan mijn klassenbibliotheekproject.

Other episodes