O que é o formato de ficheiro SVC?
Arquivos de texto com a extensão .svc contêm uma instrução de ativação de serviço para o WCF - Windows Communication Foundation. Um único arquivo .svc contém uma diretiva @ServiceHost específica para o processamento de dados WCF que é executado pelo Microsoft IIS. Serviços hospedados em máquinas podem ser ativados dessa forma por meio de mensagens recebidas. Arquivos .svc podem ser abertos e editados em qualquer editor de texto, mas o Microsoft Visual Studio e IDEs semelhantes são comumente usados em seu lugar.
A diretiva @ServiceHost suporta vários atributos. O atributo principal Service contém o nome da implementação do serviço CLR (Common Language Runtime), responsável por criar uma instância no host dinamicamente após a solicitação inicial. Atributos adicionais podem se referir à Language na qual o serviço é implementado, configurações de Debug, um caminho de código-fonte CodeBehind ou uma classe Factory personalizada. Além disso, arquivos .svc podem conter código de serviço inline. Quaisquer edições feitas nos arquivos exigem recompilação na próxima consulta.
Ao hospedar um serviço no IIS, os endereços de endpoint são sempre relativos ao caminho do arquivo .svc. Por exemplo, se o endereço base do serviço WCF for http://localhost/Application/Service.svc e o arquivo web.config contiver <endpoint address="point" />, então http://localhost/Application/Service.svc/point refere-se a esse endpoint. Navegar diretamente para a URL do .svc exibe uma página de ajuda do serviço com um link para o contrato WSDL (?wsdl).
O WCF é uma tecnologia legada não incluída no .NET moderno (Core/5+). Ele substituiu o formato .asmx mais antigo para hospedagem de serviços corporativos. Projetos que estão migrando de serviços baseados em .svc podem visar APIs mínimas do ASP.NET Core, gRPC ou a biblioteca CoreWCF mantida pela comunidade como uma ponte de compatibilidade.
Segurança e proteção
RISCO: LOWO arquivo .svc em si é um texto simples inofensivo e não contém código executável (a lógica reside em DLLs compiladas). As preocupações de segurança são do lado do servidor e referem-se ao SERVIÇO, não ao arquivo: um endpoint WCF exposto deve usar associações/autenticação adequadas, e deixar o WSDL/metadados navegáveis publicamente pode revelar o contrato do serviço. Como usuário, um arquivo .svc avulso que você encontrar é inerte - não há nada para executar ao abri-lo.
Detalhes do formato
em resumoProgramas que abrem arquivos SVC
Detalhes técnicos
especificação profunda| Tipo de arquivo | Arquivo de ativação de serviço em texto simples - sem conteúdo binário, sem carga de dados própria |
| Codificação de texto | UTF-8 |
| Sintaxe da diretiva | Sintaxe de diretiva de página ASP.NET: `<%@ ServiceHost ... %>` |
| Tipo MIME | `text/plain` |
| Tamanho típico do arquivo | Menos de 1 KB - geralmente uma única linha de diretiva |
| Ambiente de host | Microsoft IIS via manipulador ASP.NET WCF (manipulador HTTP `svc-Integrated` ou `svc-ISAPI`) |
| Atributo Service | Nomeia a classe CLR que implementa o serviço WCF (ex: `MyNamespace.MyService`) |
| Atributo Factory | Opcional; especifica uma classe `ServiceHostFactory` personalizada para controlar como o host do serviço é construído |
| Suporte a código inline | O código de implementação do serviço pode ser colocado diretamente dentro do arquivo `.svc` junto com a diretiva |
| Padrão de URL do endpoint | A URL do arquivo `.svc` é o endereço base do serviço; subcaminhos o estendem (ex: `/Service.svc/methodName`) |
| Exposição de WSDL | Anexar `?wsdl` à URL do `.svc` retorna o documento de contrato WSDL gerado automaticamente para o serviço |
| Localização da lógica de negócios | Compilada em um assembly `.dll` no diretório `bin` da aplicação web; o `.svc` é apenas o ponto de entrada do IIS |
| Configuração de tempo de execução | Associações, endpoints e comportamentos são declarados no `web.config`, não dentro do arquivo `.svc` |
| Identificação do arquivo | Sem magic bytes; identificado pela diretiva `<%@ ServiceHost` no início ou perto do início do arquivo |
| Formato predecessor | `.asmx` (ASMX Web Services) - o `.svc` do WCF substituiu o ASMX para hospedagem de serviços corporativos e multiplataforma |
| Status de legado | O WCF está ausente do .NET Core/5+; o projeto comunitário CoreWCF oferece um caminho de migração para serviços baseados em `.svc` existentes |
| Lançado | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Versão mais recente | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Especificação | learn.microsoft.com |
Conversões de SVC
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos SVC.