WCF Rest-Service
Auf einen Blick
| Gilt für | WCF auf .NET Framework 4.8.x (Bestand); CoreWCF 1.9 und ASP.NET Core Minimal APIs auf .NET 10 (Neuentwicklung) |
|---|---|
| Bereich | Softwareentwicklung |
| Dauer | ca. 30 Minuten |
| Rechte | Entwicklungsumgebung (Visual Studio 2022/2026 oder .NET SDK) |
| Stand | Oktober 2026 |
Ein WCF-REST-Service liefert Daten per HTTP und JSON statt per SOAP aus. In bestehenden .NET-Framework-Anwendungen genügen dafür ein paar Attribute und das webHttpBinding. Für neue Projekte und für die Migration nach .NET 10 ist ASP.NET Core der Nachfolger – dieser Artikel zeigt beide Wege und wie Sie einen vorhandenen WCF-Service schrittweise modernisieren.

WCF heute: Was ist noch aktuell?
| Technik | Status 2026 | Einsatz |
|---|---|---|
| WCF (System.ServiceModel, Server) | nur .NET Framework 4.8.x, keine Weiterentwicklung | Pflege von Bestandsanwendungen |
| CoreWCF | Open-Source-Port der WCF-Serverseite für .NET 8/10, von Microsoft unterstützt | Bestehende WCF-Services ohne Neuschreiben auf modernes .NET heben |
| ASP.NET Core Web API / Minimal APIs | Standard für REST in .NET 10 | Neuentwicklung von REST-Schnittstellen |
| gRPC | in ASP.NET Core enthalten | Schnelle Service-zu-Service-Kommunikation als Ersatz für SOAP/WCF-TCP |
Variante 1: REST/JSON in bestehendem WCF-Service (.NET Framework)
Aus einem SOAP-Service wird per WebInvoke-Attribut und webHttpBinding ein REST-Service.
Interface mit REST-Attributen:
[ServiceContract]
public interface ISimpleService
{
[OperationContract]
[WebInvoke(UriTemplate = "getsimpledata?id={id}", Method = "GET",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
string GetSimpleData(int id);
}
public class SimpleService : ISimpleService
{
public string GetSimpleData(int id) => $"Folgende Id wurde übergeben: {id}";
}
web.config:
<system.serviceModel>
<services>
<service name="SimpleWCFRestService.SimpleService" behaviorConfiguration="serviceBehavior">
<endpoint address="" binding="webHttpBinding" contract="SimpleWCFRestService.ISimpleService" behaviorConfiguration="Web" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="Web"><webHttp /></behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Aufruf:
GET https://server/SimpleService.svc/getsimpledata?id=123456789
"Folgende Id wurde übergeben: 123456789"
Variante 2: Gleicher Service mit ASP.NET Core Minimal API (.NET 10)
Für Neuentwicklungen ist das die empfohlene Lösung – deutlich weniger Konfiguration, eingebaute OpenAPI-Beschreibung und plattformunabhängig (Windows, Linux, Container).
dotnet new web -n SimpleRestService
cd SimpleRestService
// Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenApi();
var app = builder.Build();
app.MapOpenApi(); // /openapi/v1.json
app.MapGet("/getsimpledata", (int id) =>
Results.Ok($"Folgende Id wurde übergeben: {id}"));
app.Run();
dotnet run
curl "http://localhost:5000/getsimpledata?id=123456789"
Den Port zeigt dotnet run beim Start an. Hosting unter IIS: siehe ASP.NET bei IIS registrieren.
Variante 3: Bestehenden WCF-Service mit CoreWCF migrieren
Wenn viele Clients an Verträgen und Bindings hängen, ist CoreWCF der schnellere Weg: [ServiceContract], [OperationContract] und die Service-Klassen bleiben weitgehend unverändert, nur das Hosting wechselt auf ASP.NET Core. Für REST-Endpunkte mit webHttpBinding gibt es das Paket CoreWCF.WebHttp.
dotnet add package CoreWCF.Http
dotnet add package CoreWCF.WebHttp
Langfristig lohnt sich trotzdem der Umstieg auf Web API oder gRPC, weil CoreWCF nur einen Teil der WCF-Features abdeckt.
Hinweise
- Nur HTTPS: Schnittstellen grundsätzlich per TLS bereitstellen, Metadaten (
httpGetEnabled) im Produktivbetrieb abschalten. - Authentifizierung: Für neue REST-APIs OAuth 2.0 / OpenID Connect (z. B. Microsoft Entra ID) statt Windows- oder Basic-Authentifizierung verwenden.
- .NET Framework 4.8.1 ist Teil von Windows und wird so lange unterstützt wie das jeweilige Windows – WCF-Services laufen also weiter, erhalten aber keine neuen Funktionen.
- Bei der Modernisierung von WCF-Schnittstellen unterstützt Sie die individuelle Softwareentwicklung von m.a.x. it.
Siehe auch
Links und Quellen
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
