Che cos'è il formato di file SVC?
I file di testo con l'estensione .svc contengono un'istruzione di attivazione del servizio per WCF - Windows Communication Foundation. Un singolo file .svc contiene una direttiva @ServiceHost specifica per l'elaborazione dei dati WCF eseguita da Microsoft IIS. I servizi ospitati sulle macchine possono essere attivati in questo modo tramite messaggi in entrata. I file .svc possono essere aperti e modificati in qualsiasi editor di testo, ma solitamente vengono utilizzati Microsoft Visual Studio e IDE simili.
La direttiva @ServiceHost supporta diversi attributi. L'attributo principale Service contiene il nome dell'implementazione del servizio CLR (Common Language Runtime), responsabile della creazione dinamica di un'istanza sull'host alla richiesta iniziale. Attributi aggiuntivi possono riferirsi al Language in cui è implementato il servizio, alle impostazioni di Debug, a un percorso del codice sorgente CodeBehind o a una classe Factory personalizzata. Inoltre, i file .svc possono contenere codice del servizio inline. Qualsiasi modifica apportata ai file richiede la ricompilazione alla query successiva.
Quando si ospita un servizio in IIS, gli indirizzi degli endpoint sono sempre relativi al percorso del file .svc. Ad esempio, se l'indirizzo di base del servizio WCF è http://localhost/Application/Service.svc e il file web.config contiene <endpoint address="point" />, allora http://localhost/Application/Service.svc/point si riferisce a quell'endpoint. Navigando direttamente all'URL .svc viene mostrata una pagina di aiuto del servizio con un link al contratto WSDL (?wsdl).
WCF è una tecnologia legacy non inclusa nel moderno .NET (Core/5+). Ha sostituito il vecchio formato .asmx per l'hosting di servizi aziendali. I progetti che migrano dai servizi basati su .svc possono puntare alle minimal API di ASP.NET Core, a gRPC o alla libreria CoreWCF gestita dalla community come ponte di compatibilità.
Sicurezza e incolumità
RISCHIO: LOWIl file .svc in sé è testo semplice innocuo e non contiene codice eseguibile (la logica risiede nelle DLL compilate). Le preoccupazioni per la sicurezza riguardano il lato server e il SERVIZIO, non il file: un endpoint WCF esposto dovrebbe utilizzare binding/autenticazione appropriati, e lasciare il WSDL/metadati pubblicamente consultabili può rivelare il contratto del servizio. Per un utente, un file .svc trovato casualmente è inerte - non c'è nulla da eseguire aprendolo.
Dettagli del formato
in sintesiProgrammi che aprono file SVC
Dettagli tecnici
specifiche approfondite| Tipo di file | File di attivazione del servizio in testo semplice - nessun contenuto binario, nessun payload di dati proprio |
| Codifica del testo | UTF-8 |
| Sintassi della direttiva | Sintassi della direttiva di pagina ASP.NET: `<%@ ServiceHost ... %>` |
| Tipo MIME | `text/plain` |
| Dimensione tipica del file | Meno di 1 KB - solitamente una singola riga di direttiva |
| Ambiente host | Microsoft IIS tramite il gestore WCF di ASP.NET (gestore HTTP `svc-Integrated` o `svc-ISAPI`) |
| Attributo Service | Nomina la classe CLR che implementa il servizio WCF (es. `MyNamespace.MyService`) |
| Attributo Factory | Opzionale; specifica una classe `ServiceHostFactory` personalizzata per controllare come viene costruito l'host del servizio |
| Supporto codice inline | Il codice di implementazione del servizio può essere inserito direttamente nel file `.svc` insieme alla direttiva |
| Pattern URL endpoint | L'URL del file `.svc` è l'indirizzo di base del servizio; i sotto-percorsi lo estendono (es. `/Service.svc/nomeMetodo`) |
| Esposizione WSDL | Aggiungendo `?wsdl` all'URL `.svc` viene restituito il documento del contratto WSDL generato automaticamente per il servizio |
| Posizione logica di business | Compilata in un assembly `.dll` nella directory `bin` dell'applicazione web; il file `.svc` è solo il punto di ingresso di IIS |
| Configurazione runtime | Binding, endpoint e comportamenti sono dichiarati in `web.config`, non all'interno del file `.svc` |
| Identificazione del file | Nessun magic byte; identificato dalla direttiva `<%@ ServiceHost` all'inizio o vicino all'inizio del file |
| Formato precedente | `.asmx` (Servizi Web ASMX) - il formato `.svc` di WCF ha sostituito ASMX per l'hosting di servizi aziendali e multipiattaforma |
| Stato legacy | WCF è assente da .NET Core/5+; il progetto della community CoreWCF offre un percorso di migrazione per i servizi basati su `.svc` esistenti |
| Rilasciato | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Ultima versione | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Specifica | learn.microsoft.com |
Conversioni SVC
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file SVC.