¿Qué es el formato de archivo SVC?
Los archivos de texto con la extensión .svc contienen una instrucción de activación de servicio para WCF - Windows Communication Foundation. Un único archivo .svc contiene una directiva @ServiceHost específica para el procesamiento de datos de WCF que es ejecutada por Microsoft IIS. Los servicios alojados en máquinas pueden activarse de esta manera a través de mensajes entrantes. Los archivos .svc pueden abrirse y editarse en cualquier editor de texto, aunque comúnmente se utilizan Microsoft Visual Studio e IDEs similares en su lugar.
La directiva @ServiceHost admite varios atributos. El atributo principal Service contiene el nombre de la implementación del servicio CLR (Common Language Runtime), responsable de crear una instancia en el host de forma dinámica tras la solicitud inicial. Atributos adicionales pueden referirse al Language en el que se implementa el servicio, configuraciones de Debug, una ruta de código fuente CodeBehind o una clase Factory personalizada. Además, los archivos .svc pueden contener código de servicio en línea. Cualquier edición realizada en los archivos requiere una recompilación en la siguiente consulta.
Al alojar un servicio en IIS, las direcciones de los puntos de conexión son siempre relativas a la ruta del archivo .svc. Por ejemplo, si la dirección base del servicio WCF es http://localhost/Application/Service.svc y el archivo web.config contiene <endpoint address="point" />, entonces http://localhost/Application/Service.svc/point se refiere a ese punto de conexión. Al navegar directamente a la URL del .svc se muestra una página de ayuda del servicio con un enlace al contrato WSDL (?wsdl).
WCF es una tecnología heredada que no se incluye en el .NET moderno (Core/5+). Reemplazó al antiguo formato .asmx para el alojamiento de servicios empresariales. Los proyectos que migren desde servicios basados en .svc pueden dirigirse a las API mínimas de ASP.NET Core, gRPC o la biblioteca CoreWCF mantenida por la comunidad como un puente de compatibilidad.
Seguridad y protección
RIESGO: LOWEl archivo .svc en sí mismo es texto plano inofensivo y no contiene código ejecutable (la lógica reside en DLLs compiladas). Las preocupaciones de seguridad son del lado del servidor y se refieren al SERVICIO, no al archivo: un punto de conexión WCF expuesto debe usar enlaces y autenticación adecuados, y dejar el WSDL o los metadatos navegables públicamente puede revelar el contrato del servicio. Como usuario, un archivo .svc suelto que encuentre es inerte; no hay nada que ejecutar al abrirlo.
Detalles del formato
en pocas palabrasProgramas que abren archivos SVC
Detalles técnicos
especificación profunda| Tipo de archivo | Archivo de activación de servicio en texto plano - sin contenido binario, sin carga de datos propia |
| Codificación de texto | UTF-8 |
| Sintaxis de directiva | Sintaxis de directiva de página de ASP.NET: `<%@ ServiceHost ... %>` |
| Tipo MIME | `text/plain` |
| Tamaño de archivo típico | Menos de 1 KB - generalmente una sola línea de directiva |
| Entorno de host | Microsoft IIS a través del controlador WCF de ASP.NET (controlador HTTP `svc-Integrated` o `svc-ISAPI`) |
| Atributo Service | Nombra la clase CLR que implementa el servicio WCF (por ejemplo, `MyNamespace.MyService`) |
| Atributo Factory | Opcional; especifica una clase `ServiceHostFactory` personalizada para controlar cómo se construye el host del servicio |
| Soporte de código en línea | El código de implementación del servicio puede colocarse directamente dentro del archivo `.svc` junto a la directiva |
| Patrón de URL del punto de conexión | La URL del archivo `.svc` es la dirección base del servicio; las subrutas la extienden (por ejemplo, `/Service.svc/methodName`) |
| Exposición de WSDL | Añadir `?wsdl` a la URL del `.svc` devuelve el documento de contrato WSDL generado automáticamente para el servicio |
| Ubicación de la lógica de negocio | Compilada en un ensamblado `.dll` en el directorio `bin` de la aplicación web; el `.svc` es solo el punto de entrada de IIS |
| Configuración en tiempo de ejecución | Los enlaces, puntos de conexión y comportamientos se declaran en `web.config`, no dentro del archivo `.svc` |
| Identificación del archivo | Sin bytes mágicos; se identifica por la directiva `<%@ ServiceHost` al inicio o cerca del inicio del archivo |
| Formato predecesor | `.asmx` (Servicios Web ASMX) - el `.svc` de WCF reemplazó a ASMX para el alojamiento de servicios empresariales y multiplataforma |
| Estado de legado | WCF está ausente en .NET Core/5+; el proyecto comunitario CoreWCF ofrece una ruta de migración para los servicios basados en `.svc` existentes |
| Lanzado | 2006 (Windows Communication Foundation, .NET Framework 3.0) |
| Última versión | Tied to WCF on .NET Framework; WCF is not in modern .NET (Core/5+) - see CoreWCF |
| Especificación | learn.microsoft.com |
Conversiones de SVC
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos SVC.