Vad är filformatet SVC?
Textfiler med filtillägget .svc innehåller en instruktion för aktivering av tjänster för WCF - Windows Communication Foundation. En enskild .svc-fil innehåller ett @ServiceHost-direktiv specifikt för WCF-databehandling som körs av Microsoft IIS. Tjänster som värdshålls på maskiner kan aktiveras på detta sätt via inkommande meddelanden. .svc-filer kan öppnas och redigeras i valfri textredigerare, men Microsoft Visual Studio och liknande IDE:er används vanligtvis istället.
@ServiceHost-direktivet stöder flera attribut. Kärnattributet Service innehåller namnet på CLR-tjänsteimplementeringen (Common Language Runtime), som ansvarar för att dynamiskt skapa en instans på värden vid den första begäran. Ytterligare attribut kan referera till det Language som tjänsten är implementerad i, Debug-inställningar, en sökväg för källkod via CodeBehind, eller en anpassad Factory-klass. Dessutom kan .svc-filer innehålla inline-tjänstekod. Alla ändringar som görs i filerna kräver omkompilering vid nästa anrop.
När en tjänst värdshålls i IIS är slutpunktsadresser alltid relativa till .svc-filens sökväg. Om till exempel basadressen för WCF-tjänsten är http://localhost/Application/Service.svc och filen web.config innehåller <endpoint address="point" />, så refererar http://localhost/Application/Service.svc/point till den slutpunkten. Om man surfar direkt till .svc-webbadressen visas en hjälpsida för tjänsten med en länk till WSDL-kontraktet (?wsdl).
WCF är en föråldrad teknik som inte ingår i modern .NET (Core/5+). Den ersatte det äldre .asmx-formatet för hosting av företagstjänster. Projekt som migrerar bort från .svc-baserade tjänster kan rikta in sig på ASP.NET Core minimala API:er, gRPC eller det community-underhållna CoreWCF-biblioteket som en kompatibilitetsbrygga.
Säkerhet & trygghet
RISK: LOWSjälva .svc-filen är ofarlig klartext och innehåller ingen exekverbar kod (logiken finns i kompilerade DLL-filer). Säkerhetsaspekter är på serversidan och rör TJÄNSTEN, inte filen: en exponerad WCF-slutpunkt bör använda korrekta bindningar/autentisering, och att lämna WSDL/metadata offentligt sökbar kan avslöja tjänstekontraktet. Som användare är en lös .svc-fil du hittar inert - det finns inget att köra genom att öppna den.
Formatdetaljer
i ett nötskalProgram som öppnar SVC-filer
Tekniska detaljer
djup specifikation| Filtyp | Aktiveringsfil för tjänst i klartext - inget binärt innehåll, ingen egen datanyttolast |
| Textkodning | UTF-8 |
| Direktivsyntax | ASP.NET-sid-direktivsyntax: `<%@ ServiceHost ... %>` |
| MIME-typ | `text/plain` |
| Typisk filstorlek | Under 1 KB - vanligtvis en enda direktivrad |
| Värdmiljö | Microsoft IIS via ASP.NET WCF-hanteraren (`svc-Integrated` eller `svc-ISAPI` HTTP-hanterare) |
| Service-attribut | Namnger den CLR-klass som implementerar WCF-tjänsten (t.ex. `MyNamespace.MyService`) |
| Factory-attribut | Valfritt; anger en anpassad `ServiceHostFactory`-klass för att styra hur tjänstevärden konstrueras |
| Stöd för inline-kod | Tjänstens implementeringskod kan placeras direkt i `.svc`-filen tillsammans med direktivet |
| Mönster för slutpunkts-URL | Webbadressen till `.svc`-filen är tjänstens basadress; undersökvägar utökar den (t.ex. `/Service.svc/methodName`) |
| WSDL-exponering | Genom att lägga till `?wsdl` i slutet av `.svc`-webbadressen returneras det autogenererade WSDL-kontraktsdokumentet för tjänsten |
| Plats för affärslogik | Kompilerad till en `.dll`-assembly i webbapplikationens `bin`-katalog; `.svc` är endast ingångspunkten för IIS |
| Körtidskonfiguration | Bindningar, slutpunkter och beteenden deklareras i `web.config`, inte inuti `.svc`-filen |
| Filidentifiering | Inga magic bytes; identifieras av `<%@ ServiceHost`-direktivet vid eller nära början av filen |
| Föregångarformat | `.asmx` (ASMX Web Services) - WCF:s `.svc` ersatte ASMX för hosting av tjänster i företag och mellan plattformar |
| Status som föråldrad | WCF saknas i .NET Core/5+; community-projektet CoreWCF erbjuder en migreringsväg för befintliga `.svc`-baserade tjänster |
| Släppt | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Senaste version | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Specifikation | learn.microsoft.com |
SVC-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om SVC-filer.