Hvad er SVC-filformatet?
Tekstfiler med filtypen .svc indeholder en instruktion til serviceaktivering for WCF - Windows Communication Foundation. En enkelt .svc-fil indeholder et @ServiceHost-direktiv, der er specifikt for WCF-databehandling, som køres af Microsoft IIS. Tjenester, der hostes på maskiner, kan aktiveres på denne måde via indgående meddelelser. .svc-filer kan åbnes og redigeres i enhver teksteditor, men Microsoft Visual Studio og lignende IDE'er bruges normalt i stedet.
@ServiceHost-direktivet understøtter flere attributter. Kerneattributten Service indeholder navnet på CLR (Common Language Runtime) service-implementeringen, som er ansvarlig for at oprette en instans på værten dynamisk ved den første anmodning. Yderligere attributter kan referere til det Language, som servicen er implementeret i, Debug-indstillinger, en CodeBehind-sti til kildekoden eller en brugerdefineret Factory-klasse. Desuden kan .svc-filer indeholde inline servicekode. Enhver ændring af filerne kræver rekompilering ved næste forespørgsel.
Når man hoster en tjeneste i IIS, er slutpunktsadresser altid relative til .svc-filstien. For eksempel, hvis den grundlæggende WCF-serviceadresse er http://localhost/Application/Service.svc, og web.config-filen indeholder <endpoint address="point" />, så refererer http://localhost/Application/Service.svc/point til det slutpunkt. Hvis man browser direkte til .svc-URL'en, vises en hjælpeside for tjenesten med et link til WSDL-kontrakten (?wsdl).
WCF er en ældre teknologi, der ikke er inkluderet i moderne .NET (Core/5+). Den afløste det ældre .asmx-format til hosting af virksomhedstjenester. Projekter, der migrerer væk fra .svc-baserede tjenester, kan målrette ASP.NET Core minimale API'er, gRPC eller det fællesskabsdrevne CoreWCF-bibliotek som en kompatibilitetsbro.
Sikkerhed og tryghed
RISIKO: LOWSelve .svc-filen er harmløs almindelig tekst og indeholder ingen eksekverbar kode (logikken findes i kompilerede DLL-filer). Sikkerhedshensyn er på serversiden og handler om TJENESTEN, ikke filen: et eksponeret WCF-slutpunkt bør bruge korrekte bindinger/autentificering, og at lade WSDL/metadata være offentligt tilgængelige kan afsløre tjenestekontrakten. Som bruger er en tilfældig .svc-fil, du finder, inaktiv - der er intet at eksekvere ved at åbne den.
Formatdetaljer
kort fortaltProgrammer der åbner SVC-filer
Tekniske detaljer
dyb specifikation| Filtype | Almindelig tekstfil til serviceaktivering - intet binært indhold, ingen egne datadata |
| Tekstkodning | UTF-8 |
| Direktivsyntaks | ASP.NET side-direktiv syntaks: `<%@ ServiceHost ... %>` |
| MIME-type | `text/plain` |
| Typisk filstørrelse | Under 1 KB - normalt en enkelt direktivlinje |
| Værtsmiljø | Microsoft IIS via ASP.NET WCF-handleren (`svc-Integrated` eller `svc-ISAPI` HTTP-handler) |
| Service-attribut | Navngiver den CLR-klasse, der implementerer WCF-tjenesten (f.eks. `MyNamespace.MyService`) |
| Factory-attribut | Valgfri; angiver en brugerdefineret `ServiceHostFactory`-klasse til at styre, hvordan serviceværten konstrueres |
| Understøttelse af inline-kode | Service-implementeringskode kan placeres direkte i `.svc`-filen sammen med direktivet |
| URL-mønster for slutpunkt | `.svc`-filens URL er tjenestens basisadresse; understier udvider den (f.eks. `/Service.svc/methodName`) |
| WSDL-eksponering | Tilføjelse af `?wsdl` til `.svc`-URL'en returnerer det autogenererede WSDL-kontraktdokument for tjenesten |
| Placering af forretningslogik | Kompileret i en `.dll`-assembly i webapplikationens `bin`-mappe; `.svc` er kun IIS-indgangspunktet |
| Runtime-konfiguration | Bindinger, slutpunkter og adfærd erklæres i `web.config`, ikke inde i `.svc`-filen |
| Filidentifikation | Ingen magic bytes; identificeres ved `<%@ ServiceHost`-direktivet ved eller nær starten af filen |
| Forgængerformat | `.asmx` (ASMX Web Services) - WCF's `.svc` afløste ASMX til virksomheds- og tværplatforms-hosting |
| Legacy-status | WCF findes ikke i .NET Core/5+; fællesskabsprojektet CoreWCF tilbyder en migrationsvej for eksisterende `.svc`-baserede tjenester |
| Udgivet | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Seneste version | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Specifikation | learn.microsoft.com |
SVC-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om SVC-filer.