Error del servidor en la aplicación: al intentar acceder al servicio WCF
-
14-11-2019 - |
Pregunta
Tengo un servicio WCF que me gustaría alojar en IIS 7.5. Mi configuración: El camino físico de la carpeta con el archivo .svc es: C: \ inetpub \ wwwroot \ smartsolution \ services \ servicios \ contenedoranmanagementservice.svc Mis binarios están en C: \ inetpub \ wwwroot \ smartsolution \ services \ bin y también los copié para C: \ inetpub \ wwwroot \ smartsolution \ services \ servicios \ bin
He creado una aplicación web en IIS para ambas carpetas de servicios.
Aquí está el archivo de configuración para el punto final de WCF:
<service behaviorConfiguration="MyNamespace.ContainerManagementServiceBehavior"
name="MyNamespace.ContainerManagementService">
<endpoint address="" binding="basicHttpBinding"
name="ContainerManagementbasicHttpEndpoint" contract="MyNamespace.IContainer"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<behaviors>
<behavior name="MyNamespace.ContainerManagementServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</behaviors>
Aquí está mi archivo .svc makrkup:
<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.ContainerManagementService" CodeBehind="ContainerManagementService.svc.cs" %>
Cuando intento navegar a: http:// localhost / smartsolution / servicios / servicios / contenedoranmanagementservice .svc , se muestra el siguiente error:
Error del servidor en '/ SmartSolution / Servicios / Servicios' Solicitud. [ServiceEactivationException: el Servicio '/Smartsolution/services/services/containermanagementservice.svc' no se puede activar debido a un Excepción durante la compilación. El El mensaje de excepción es: no es válido Aplicación Win32. (Excepción de Hresult: 0x800700c1).] No es válido Aplicación Win32. (Excepción de Hresult: 0x800700c1)
¿Cómo puedo obtener el servicio para trabajar? ¡Gracias!
Solución
Mirando las excepciones, parece que sus ensamblajes (en carpeta de bin) se basan en la placa X64 y ahora se implementan en la máquina de 32 bits o el grupo de aplicaciones configurado para la aplicación se está ejecutando debajo del modo de 32 bits (habilitar aplicaciones de 32 bits="cierto").Por lo tanto, el proceso no puede cargar los ensamblajes construidos para la plataforma X64 y falla con excepción.
hth Amit