Erro de servidor no aplicativo - ao tentar acessar o serviço WCF
-
14-11-2019 - |
Pergunta
Tenho um serviço WCF que gostaria de hospedar no IIS 7.5.Minha configuração:O caminho físico da pasta com o arquivo .svc é:C: INETPUB wwwroot smartSolution Services Services ContainerManagentService.svc Meus binários estão em C: inetpub wwwroot smartsolution Services bin e também os copiei para C: inetpub wwwroot smart smart smart wwwwrot bin e também copiei -os para C: inetpub wwwroot smart -se bin
Criei um aplicativo web no IIS para ambas as pastas de serviços.
Aqui está o arquivo de configuração para o endpoint 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>
Aqui está meu arquivo .svc makrkup:
<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.ContainerManagementService" CodeBehind="ContainerManagementService.svc.cs" %>
Quando tento navegar para: http://localhost/SmartSolution/Services/Services/ContainerManagementService.svc , o seguinte erro é exibido:
Erro do servidor no aplicativo '/smartSolution/Services/Services'.[ServiceActivationException:O serviço '/smartsolution/services/services/containerManageMemervice.svc' não pode ser ativado devido a uma exceção durante a compilação.A mensagem de exceção é:não é uma aplicação win32 válida.(Exceção de HRESULT:0x800700C1).] Não é um aplicativo Win32 válido.(Exceção de HRESULT:0x800700C1)
Como posso fazer o serviço funcionar.Obrigado!
Solução
Observando as exceções, parece que seus assemblies (na pasta bin) foram criados visando a plataforma x64 e agora estão implantados em uma máquina de 32 bits ou em um pool de aplicativos configurado para o aplicativo estar sendo executado no modo de 32 bits (Ativar aplicativos de 32 bits = "true" ).Assim, o processo não consegue carregar os assemblies construídos para a plataforma x64 e falha com exceção.
HTH AMIT