Wat is het SVC-bestandsformaat?
Tekstbestanden met de extensie .svc bevatten een instructie voor service-activatie voor WCF - Windows Communication Foundation. Een enkel .svc-bestand bevat een @ServiceHost-richtlijn die specifiek is voor WCF-gegevensverwerking die door Microsoft IIS wordt uitgevoerd. Services die op machines worden gehost, kunnen op deze manier worden geactiveerd via inkomende berichten. .svc-bestanden kunnen worden geopend en bewerkt in elke tekstverwerker, maar Microsoft Visual Studio en vergelijkbare IDE's worden vaker gebruikt.
De @ServiceHost-richtlijn ondersteunt verschillende attributen. Het kernattribuut Service bevat de naam van de CLR (Common Language Runtime) service-implementatie, die verantwoordelijk is voor het dynamisch maken van een instantie op de host bij het eerste verzoek. Aanvullende attributen kunnen verwijzen naar de Language waarin de service is geïmplementeerd, Debug-instellingen, een CodeBehind-broncodepad of een aangepaste Factory-klasse. Bovendien kunnen .svc-bestanden inline servicecode bevatten. Eventuele wijzigingen in bestanden vereisen hercompilatie bij de volgende aanvraag.
Bij het hosten van een service in IIS zijn eindpuntadressen altijd relatief ten opzichte van het .svc-bestandspad. Als het basisadres van de WCF-service bijvoorbeeld http://localhost/Application/Service.svc is en het web.config-bestand bevat <endpoint address="point" />, dan verwijst http://localhost/Application/Service.svc/point naar dat eindpunt. Het rechtstreeks browsen naar de .svc-URL toont een helppagina van de service met een link naar het WSDL-contract (?wsdl).
WCF is een verouderde technologie die niet is opgenomen in het moderne .NET (Core/5+). Het verving het oudere .asmx-formaat voor zakelijke servicehosting. Projecten die migreren van op .svc gebaseerde services kunnen zich richten op ASP.NET Core minimal API's, gRPC of de door de community onderhouden CoreWCF-bibliotheek als compatibiliteitsbrug.
Beveiliging & veiligheid
RISICO: LOWHet .svc-bestand zelf is onschadelijke platte tekst en bevat geen uitvoerbare code (de logica bevindt zich in gecompileerde DLL's). Beveiligingskwesties bevinden zich aan de serverzijde en gaan over de SERVICE, niet over het bestand: een blootgesteld WCF-eindpunt moet de juiste bindingen/authenticatie gebruiken, en het publiekelijk doorzoekbaar laten van de WSDL/metadata kan het servicecontract onthullen. Als gebruiker is een verdwaald .svc-bestand dat u vindt inert - er valt niets uit te voeren door het te openen.
Formaatdetails
in een notendopProgramma's die SVC-bestanden openen
Technische details
diepe specificaties| Bestandstype | Plat tekstbestand voor service-activatie - geen binaire inhoud, geen eigen gegevenslading |
| Tekstcodering | UTF-8 |
| Syntaxis van richtlijn | ASP.NET paginarichtlijn-syntaxis: `<%@ ServiceHost ... %>` |
| MIME-type | `text/plain` |
| Typische bestandsgrootte | Minder dan 1 KB - meestal een enkele regel met een richtlijn |
| Host-omgeving | Microsoft IIS via de ASP.NET WCF-handler (`svc-Integrated` of `svc-ISAPI` HTTP-handler) |
| Service-attribuut | Benoemt de CLR-klasse die de WCF-service implementeert (bijv. `MyNamespace.MyService`) |
| Factory-attribuut | Optioneel; specificeert een aangepaste `ServiceHostFactory`-klasse om te bepalen hoe de servicehost wordt geconstrueerd |
| Ondersteuning voor inline code | Service-implementatiecode kan rechtstreeks in het `.svc`-bestand worden geplaatst naast de richtlijn |
| URL-patroon van eindpunt | De URL van het `.svc`-bestand is het basisadres van de service; subpaden breiden dit uit (bijv. `/Service.svc/methodName`) |
| WSDL-blootstelling | Het toevoegen van `?wsdl` aan de `.svc`-URL retourneert het automatisch gegenereerde WSDL-contractdocument voor de service |
| Locatie van bedrijfslogica | Gecompileerd in een `.dll`-assembly in de `bin`-map van de webapplicatie; `.svc` is alleen het IIS-toegangspunt |
| Runtime-configuratie | Bindingen, eindpunten en gedragingen worden gedeclareerd in `web.config`, niet binnen het `.svc`-bestand |
| Bestandsidentificatie | Geen magic bytes; geïdentificeerd door de `<%@ ServiceHost`-richtlijn aan of nabij het begin van het bestand |
| Voorganger-formaat | `.asmx` (ASMX Web Services) - WCF's `.svc` verving ASMX voor zakelijke en platformonafhankelijke servicehosting |
| Legacy-status | WCF ontbreekt in .NET Core/5+; het communityproject CoreWCF biedt een migratiepad voor bestaande op `.svc` gebaseerde services |
| Uitgebracht | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Laatste versie | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Specificatie | learn.microsoft.com |
SVC conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SVC-bestanden.