Estou desenvolvendo um aplicativo baseado em .Net Framework 3.5 sp1 e hospedado no servidor windows 2008 (64 bits).
Ao navegar no serviço wcf (.svc) localmente, tudo está ok, mas ao navegar com o URL de domínio completo, ocorreu um erro.
o endereço local é assim: http: //localhost/MyService.svc
e o endereço de domínio é assim: http://MySite.ir/MyService.svc
a propósito, as páginas (.aspx) e outros arquivos funcionam corretamente tanto no localhost quanto com o endereço de domínio.
Qualquer ideia seria apreciada
Aqui está o erro detalhado:
Erro HTTP 404.3 - não encontrado
A página que você está solicitando não pode ser exibida devido à configuração da extensão. Se a página for um script, adicione um manipulador. Se o arquivo deve ser baixado, adicione um mapa MIME. Informação detalhada do erro
Módulo: StaticFileModule
Notificação: ExecuteRequestHandler
Manipulador: StaticFile
Código de erro: 0x80070032
URL solicitado: http://MySite.ir:80/MyService.svc
Caminho físico: D: \ inetpub \ vhosts \ MySite.ir \ httpdocs \ MyService.svc
Método de logon: anônimo
Usuário de logon anônimo
OK, aqui está a resposta:
Vá para Mapeamentos do manipulador | Adicionar gerenciador de manipulador -> e adicionar as informações abaixo
Caminho do pedido: * .svc
Tipo: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089
Nome: svc-integrado
fonte
path="*.svc"
everb="*"
funcionou muito bem. Assim, a linha que usei que funcionou foi:<add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
(adicionada em configuration / system.webServer / handlers).Se alguém tiver esse problema no Windows Server 2012, a resposta de Bill Moon aqui resolveu para mim:
"Para Windows Server 2012 ... No Gerenciador do Servidor, clique em Adicionar funções e recursos, selecione o servidor apropriado e selecione Recursos. Em Recursos do .NET Framework 4.5, você verá Serviços WCF e, abaixo dele, encontre a ativação HTTP. "
fonte
Tenho windows 10 no meu laptop e uso o visual studio 2015 para desenvolvimento WCF. O WCF está funcionando bem no visual studio, mas quando hospedado no IIS, obtive o mesmo erro.
Verifiquei o gerenciador do IIS. A extensão svc estava faltando. Tentei adicionar um novo manipulador no IIS, conforme sugerido por Mori na primeira resposta. Não encontrei o tipo "System.ServiceModel.Activation.HttpHandler".
Então abri "Ativar ou desativar recursos do Windows" e instalei os recursos destacados na captura de tela.
Isso funcionou para mim.
fonte
Se você estiver usando .Net 4.x, o PublicKeyToken será 31bf3856ad364e35.
No entanto, após esta postagem sobre como instalar os serviços WCF corretamente no IIS, o manipulador foi configurado para mim.
fonte
Eu queria adicionar isso como um comentário à resposta, mas não tinha representantes suficientes para isso. Tentei executar ServiceModelReg e aspnet_regiis.exe com vários sinalizadores e adicionei o recurso de ativação HTTP, mas ainda não funcionou. Mesmo o uso da IU de mapeamento do manipulador no IIS não funcionou, pois não foi possível encontrar System.ServiceModel.Activation.HttpHandler. O que finalmente funcionou foi adicionar o manipulador que Mori menciona manualmente ao meu arquivo web.config.
<system.webServer> <handlers> <add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />
Meu projeto estava executando .Net 3.5 e IIS 7.5 no Windows 7 e IIS 7.0 no Win Server 2008 R2.
fonte
Tente desmarcar as ativações de HTTP do WCF na janela "Ativar ou desativar recursos do Windows" ( veja aqui ) e reinstale indo para
%windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
e executar
ServiceModelReg -i
fonte