Was ist das SVC-Dateiformat?
Textdateien mit der Dateiendung .svc enthalten eine Dienstanweisungs-Instruktion für WCF - Windows Communication Foundation. Eine einzelne .svc-Datei enthält eine @ServiceHost-Direktive, die spezifisch für die WCF-Datenverarbeitung ist, welche von Microsoft IIS ausgeführt wird. Auf Rechnern gehostete Dienste können auf diese Weise über eingehende Nachrichten aktiviert werden. .svc-Dateien können in jedem Texteditor geöffnet und bearbeitet werden, wobei jedoch häufig Microsoft Visual Studio und ähnliche IDEs verwendet werden.
Die @ServiceHost-Direktive unterstützt mehrere Attribute. Das Kernattribut Service enthält den Namen der CLR-Dienstimplementierung (Common Language Runtime), die dafür verantwortlich ist, bei der ersten Anfrage dynamisch eine Instanz auf dem Host zu erstellen. Zusätzliche Attribute können sich auf die Language beziehen, in der der Dienst implementiert ist, auf Debug-Einstellungen, einen CodeBehind-Quellcodepfad oder eine benutzerdefinierte Factory-Klasse. Darüber hinaus können .svc-Dateien Inline-Dienstcode enthalten. Alle an den Dateien vorgenommenen Änderungen erfordern bei der nächsten Abfrage eine Neukompilierung.
Beim Hosting eines Dienstes in IIS sind Endpunktadressen immer relativ zum Pfad der .svc-Datei. Wenn beispielsweise die Basisadresse des WCF-Dienstes http://localhost/Application/Service.svc lautet und die web.config-Datei <endpoint address="point" /> enthält, bezieht sich http://localhost/Application/Service.svc/point auf diesen Endpunkt. Das direkte Aufrufen der .svc-URL im Browser zeigt eine Hilfe-Seite des Dienstes mit einem Link zum WSDL-Vertrag (?wsdl).
WCF ist eine veraltete Technologie, die im modernen .NET (Core/5+) nicht enthalten ist. Sie löste das ältere .asmx-Format für das Hosting von Unternehmensdiensten ab. Projekte, die von .svc-basierten Diensten migrieren, können auf ASP.NET Core Minimal-APIs, gRPC oder die von der Community gepflegte CoreWCF-Bibliothek als Kompatibilitätsbrücke ausweichen.
Sicherheit
RISIKO: LOWDie .svc-Datei selbst ist harmloser Klartext und enthält keinen ausführbaren Code (die Logik befindet sich in kompilierten DLLs). Sicherheitsbedenken bestehen serverseitig und betreffen den DIENST, nicht die Datei: Ein exponierter WCF-Endpunkt sollte ordnungsgemäße Bindungen/Authentifizierung verwenden, und das öffentlich zugängliche Belassen der WSDL/Metadaten kann den Dienstvertrag offenlegen. Als Benutzer ist eine gefundene .svc-Datei inaktiv - durch das Öffnen wird nichts ausgeführt.
Formatdetails
kurz gefasstProgramme zum Öffnen von SVC-Dateien
Technische Details
technische Spezifikation| Dateityp | Klartext-Dienstaktivierungsdatei - kein binärer Inhalt, keine eigenen Datennutzlasten |
| Textkodierung | UTF-8 |
| Direktiven-Syntax | ASP.NET-Seitendirektiven-Syntax: `<%@ ServiceHost ... %>` |
| MIME-Typ | `text/plain` |
| Typische Dateigröße | Unter 1 KB - normalerweise eine einzelne Direktivenzeile |
| Host-Umgebung | Microsoft IIS über den ASP.NET WCF-Handler (`svc-Integrated` oder `svc-ISAPI` HTTP-Handler) |
| Service-Attribut | Benennt die CLR-Klasse, die den WCF-Dienst implementiert (z. B. `MyNamespace.MyService`) |
| Factory-Attribut | Optional; spezifiziert eine benutzerdefinierte `ServiceHostFactory`-Klasse, um die Konstruktion des Dienst-Hosts zu steuern |
| Inline-Code-Unterstützung | Dienstimplementierungscode kann direkt in der `.svc`-Datei neben der Direktive platziert werden |
| Endpunkt-URL-Muster | Die URL der `.svc`-Datei ist die Basisadresse des Dienstes; Unterpfade erweitern diese (z. B. `/Service.svc/methodName`) |
| WSDL-Bereitstellung | Das Anhängen von `?wsdl` an die `.svc`-URL gibt das automatisch generierte WSDL-Vertragsdokument für den Dienst zurück |
| Ort der Geschäftslogik | Kompiliert in ein `.dll`-Assembly im `bin`-Verzeichnis der Webanwendung; `.svc` ist nur der IIS-Einstiegspunkt |
| Laufzeitkonfiguration | Bindungen, Endpunkte und Verhaltensweisen werden in der `web.config` deklariert, nicht innerhalb der `.svc`-Datei |
| Dateiidentifikation | Keine Magic Bytes; identifiziert durch die `<%@ ServiceHost`-Direktive am oder nahe dem Dateianfang |
| Vorgängerformat | `.asmx` (ASMX Web Services) - WCFs `.svc` löste ASMX für Unternehmens- und plattformübergreifendes Dienst-Hosting ab |
| Legacy-Status | WCF fehlt in .NET Core/5+; das Community-Projekt CoreWCF bietet einen Migrationspfad für bestehende `.svc`-basierte Dienste |
| Veröffentlicht | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Neueste Version | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Spezifikation | learn.microsoft.com |
SVC-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu SVC-Dateien.