Hva er SVC-filformatet?
Tekstfiler med filendelsen .svc inneholder en instruksjon for aktivering av tjenester for WCF - Windows Communication Foundation. En enkelt .svc-fil inneholder et @ServiceHost-direktiv spesifikt for WCF-databehandling som kjøres av Microsoft IIS. Tjenester som er vert på maskiner kan aktiveres på denne måten via innkommende meldinger. .svc-filer kan åpnes og redigeres i alle tekstredigeringsprogrammer, men Microsoft Visual Studio og lignende IDE-er brukes vanligvis i stedet.
@ServiceHost-direktivet støtter flere attributter. Kjerneattributtet Service inneholder navnet på CLR-tjenesteimplementeringen (Common Language Runtime), som er ansvarlig for å opprette en instans på verten dynamisk ved første forespørsel. Ytterligere attributter kan referere til Language som tjenesten er implementert i, Debug-innstillinger, en CodeBehind-kildekodebane eller en tilpasset Factory-klasse. I tillegg kan .svc-filer inneholde innebygd tjenestekode. Eventuelle endringer som gjøres i filene krever rekompilering ved neste forespørsel.
Når du er vert for en tjeneste i IIS, er endepunktsadresser alltid relative til banen til .svc-filen. For eksempel, hvis basisadressen for WCF-tjenesten er http://localhost/Application/Service.svc og web.config-filen inneholder <endpoint address="point" />, refererer http://localhost/Application/Service.svc/point til det endepunktet. Ved å navigere direkte til .svc-URL-en vises en hjelpeside for tjenesten med en lenke til WSDL-kontrakten (?wsdl).
WCF er en eldre teknologi som ikke er inkludert i moderne .NET (Core/5+). Den erstattet det eldre .asmx-formatet for hosting av bedriftstjenester. Prosjekter som migrerer bort fra .svc-baserte tjenester kan bruke ASP.NET Core minimal APIs, gRPC eller det fellesskapsdrevne CoreWCF-biblioteket som en kompatibilitetsbro.
Sikkerhet og trygghet
RISIKO: LOWSelve .svc-filen er ufarlig ren tekst og inneholder ingen kjørbar kode (logikken ligger i kompilerte DLL-er). Sikkerhetshensyn er på serversiden og gjelder TJENESTEN, ikke filen: et eksponert WCF-endepunkt bør bruke riktige bindinger/autentisering, og å la WSDL/metadata være offentlig tilgjengelig kan avsløre tjenestekontrakten. Som bruker er en tilfeldig .svc-fil du finner inaktiv - det er ingenting å kjøre ved å åpne den.
Formatdetaljer
i et nøtteskallProgrammer som åpner SVC-filer
Tekniske detaljer
dyp spesifikasjon| Filtype | Tjenesteaktiveringsfil i ren tekst - ingen binært innhold, ingen egen datalast |
| Tekstkoding | UTF-8 |
| Direktivsyntaks | ASP.NET sidedirektiv-syntaks: `<%@ ServiceHost ... %>` |
| MIME-type | `text/plain` |
| Typisk filstørrelse | Under 1 KB - vanligvis en enkelt direktivlinje |
| Vertsmiljø | Microsoft IIS via ASP.NET WCF-behandleren (`svc-Integrated` eller `svc-ISAPI` HTTP-behandler) |
| Service-attributt | Navngir CLR-klassen som implementerer WCF-tjenesten (f.eks. `MyNamespace.MyService`) |
| Factory-attributt | Valgfritt; spesifiserer en tilpasset `ServiceHostFactory`-klasse for å kontrollere hvordan tjenesteverten konstrueres |
| Støtte for innebygd kode | Tjenesteimplementeringskode kan plasseres direkte inne i `.svc`-filen sammen med direktivet |
| URL-mønster for endepunkt | URL-en til `.svc`-filen er tjenestens basisadresse; underbaner utvider den (f.eks. `/Service.svc/methodName`) |
| WSDL-eksponering | Ved å legge til `?wsdl` i `.svc`-URL-en returneres det autogenererte WSDL-kontraktsdokumentet for tjenesten |
| Plassering av forretningslogikk | Kompilert inn i en `.dll`-assembly i webapplikasjonens `bin`-mappe; `.svc` er kun inngangspunktet for IIS |
| Kjøretidskonfigurasjon | Bindinger, endepunkter og atferd deklareres i `web.config`, ikke inne i `.svc`-filen |
| Filidentifikasjon | Ingen «magic bytes»; identifiseres av `<%@ ServiceHost`-direktivet ved eller nær starten av filen |
| Forgjengerformat | `.asmx` (ASMX Web Services) - WCFs `.svc` erstattet ASMX for bedrifts- og plattformuavhengig hosting av tjenester |
| Status som utgått | WCF mangler i .NET Core/5+; fellesskapsprosjektet CoreWCF tilbyr en migreringsvei for eksisterende `.svc`-baserte tjenester |
| Utgitt | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Siste versjon | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Spesifikasjon | learn.microsoft.com |
SVC-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om SVC-filer.