Qu'est-ce que le format de fichier SVC ?
Les fichiers texte avec l'extension .svc contiennent une instruction d'activation de service pour WCF - Windows Communication Foundation. Un seul fichier .svc contient une directive @ServiceHost spécifique au traitement des données WCF exécuté par Microsoft IIS. Les services hébergés sur des machines peuvent être activés de cette manière via des messages entrants. Les fichiers .svc peuvent être ouverts et modifiés dans n'importe quel éditeur de texte, mais Microsoft Visual Studio et des IDE similaires sont couramment utilisés à la place.
La directive @ServiceHost prend en charge plusieurs attributs. L'attribut principal Service contient le nom de l'implémentation du service CLR (Common Language Runtime), responsable de la création dynamique d'une instance sur l'hôte lors de la requête initiale. Des attributs supplémentaires peuvent se référer au Language dans lequel le service est implémenté, aux paramètres Debug, à un chemin de code source CodeBehind ou à une classe Factory personnalisée. De plus, les fichiers .svc peuvent contenir du code de service en ligne. Toute modification apportée aux fichiers nécessite une recompilation lors de la requête suivante.
Lors de l'hébergement d'un service dans IIS, les adresses des points de terminaison sont toujours relatives au chemin du fichier .svc. Par exemple, si l'adresse de base du service WCF est http://localhost/Application/Service.svc et que le fichier web.config contient <endpoint address="point" />, alors http://localhost/Application/Service.svc/point fait référence à ce point de terminaison. La navigation directe vers l'URL .svc affiche une page d'aide du service avec un lien vers le contrat WSDL (?wsdl).
WCF est une technologie héritée non incluse dans le .NET moderne (Core/5+). Elle a remplacé l'ancien format .asmx pour l'hébergement de services d'entreprise. Les projets migrant à partir de services basés sur .svc peuvent cibler les API minimales ASP.NET Core, gRPC ou la bibliothèque CoreWCF maintenue par la communauté comme pont de compatibilité.
Sécurité et sûreté
RISQUE : LOWLe fichier .svc lui-même est un texte brut inoffensif et ne contient aucun code exécutable (la logique réside dans des DLL compilées). Les préoccupations de sécurité concernent le côté serveur et le SERVICE, pas le fichier : un point de terminaison WCF exposé doit utiliser des liaisons/authentifications appropriées, et laisser le WSDL/métadonnées consultables publiquement peut révéler le contrat du service. En tant qu'utilisateur, un fichier .svc égaré que vous trouvez est inerte - il n'y a rien à exécuter en l'ouvrant.
Détails du format
en brefProgrammes qui ouvrent les fichiers SVC
Détails techniques
spécifications approfondies| Type de fichier | Fichier d'activation de service en texte brut - pas de contenu binaire, pas de données propres |
| Encodage du texte | UTF-8 |
| Syntaxe de directive | Syntaxe de directive de page ASP.NET : `<%@ ServiceHost ... %>` |
| Type MIME | `text/plain` |
| Taille typique du fichier | Moins de 1 Ko - généralement une seule ligne de directive |
| Environnement hôte | Microsoft IIS via le gestionnaire ASP.NET WCF (gestionnaire HTTP `svc-Integrated` ou `svc-ISAPI`) |
| Attribut Service | Nomme la classe CLR qui implémente le service WCF (ex: `MyNamespace.MyService`) |
| Attribut Factory | Optionnel ; spécifie une classe `ServiceHostFactory` personnalisée pour contrôler la construction de l'hôte de service |
| Support du code en ligne | Le code d'implémentation du service peut être placé directement dans le fichier `.svc` à côté de la directive |
| Modèle d'URL du point de terminaison | L'URL du fichier `.svc` est l'adresse de base du service ; les sous-chemins l'étendent (ex: `/Service.svc/methodName`) |
| Exposition WSDL | L'ajout de `?wsdl` à l'URL `.svc` renvoie le document de contrat WSDL généré automatiquement pour le service |
| Emplacement de la logique métier | Compilée dans un assembly `.dll` dans le répertoire `bin` de l'application web ; le `.svc` est uniquement le point d'entrée IIS |
| Configuration d'exécution | Les liaisons, points de terminaison et comportements sont déclarés dans `web.config`, pas dans le fichier `.svc` |
| Identification du fichier | Pas d'octets magiques ; identifié par la directive `<%@ ServiceHost` au début ou près du début du fichier |
| Format prédécesseur | `.asmx` (Services Web ASMX) - le format `.svc` de WCF a remplacé ASMX pour l'hébergement de services d'entreprise et multiplateformes |
| Statut hérité | WCF est absent de .NET Core/5+ ; le projet communautaire CoreWCF offre une voie de migration pour les services basés sur `.svc` existants |
| Publié | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Dernière version | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Spécification | learn.microsoft.com |
Conversions SVC
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers SVC.