Esta não é uma pergunta - publique-a aqui para referência:
Ao consumir um WebService, recebi o seguinte erro:
O formato da solicitação não é reconhecido para o URL que termina inesperadamente em / myMethodName
asp.net
web-services
m romano
fonte
fonte
Respostas:
Encontrei uma solução neste site
Tudo que você precisa é adicionar o seguinte ao seu web.config
Mais informações da Microsoft
fonte
Apesar de 90% de todas as informações que encontrei (enquanto tentava encontrar uma solução para esse erro) me dizendo para adicionar o
HttpGet
eHttpPost
à configuração, que não funcionou para mim ... e não faz sentido para mim de qualquer maneira.Meu aplicativo está sendo executado em muitos servidores (mais de 30 anos) e nunca precisei adicionar essa configuração a nenhum deles. A versão do aplicativo em execução no .NET 2.0 ou .NET 4.0.
A solução para mim foi registrar novamente o ASP.NET no IIS.
Eu usei a seguinte linha de comando para conseguir isso ...
fonte
aspnet_regiis -i
corrigido embora.Verifique se você está usando o método certo: Post / Get, tipo de conteúdo certo e parâmetros certos (dados).
fonte
content-type: application/json
resolveu esse problema para mim também.Soberbo.
Caso 2 - onde o mesmo problema pode surgir) no meu caso, o problema ocorreu devido à seguinte linha:
Funciona bem no servidor, pois as chamadas são feitas diretamente para a função de serviço da web - no entanto, falhará se você executar o serviço diretamente de .Net no ambiente de depuração e desejar testar a execução manual da função.
fonte
Para o registro, eu estava recebendo esse erro quando movi um aplicativo antigo de um servidor para outro. Adicionei os
<add name="HttpGet"/> <add name="HttpPost"/>
elementos ao web.config, que alterou o erro para:Para corrigir esse erro, tive que adicionar as linhas ScriptHandlerFactory ao web.config:
Por que funcionou sem essas linhas em um servidor web e não no outro eu não sei.
fonte
Eu uso a seguinte linha de código para corrigir esse problema. Escreva o seguinte código no arquivo web.config
fonte
Eu não tive o problema ao desenvolver no localhost. No entanto, depois que publiquei em um servidor Web, o serviço Web retornava um resultado vazio (em branco) e eu estava vendo o erro nos meus logs.
Corrigi-o definindo meu conteúdo ajax para:
e usando:
no objeto que eu estava postando.
fonte
Eu também recebi esse erro com o apache mod-mono. Parece que a página de documentação do webservice ainda não foi implementada no linux. Mas o serviço da web está funcionando apesar desse erro. Você deve vê-lo adicionando
?WSDL
no final do URL, ou seja, http: //localhost/WebService1.asmx? WSDLfonte
No meu caso, o erro ocorreu quando mudo do meu PC local Windows 10 para um servidor dedicado com Windows 2012. A solução para foi adicionar ao web.config as seguintes linhas
fonte
No html, você deve anexar a chamada em um formulário com um GET com algo como
Você também pode usar a
POST
com a ação sendo o local do serviço da web e inserir o parâmetro por meio de uma tag de entrada.Existem também
SOAP
classes proxy.fonte
No meu caso, eu tinha uma sobrecarga de função que estava causando essa exceção, uma vez que mudei o nome da minha segunda função, ela funcionou ok, acho que o servidor da Web não suporta sobrecarga de função
fonte
No nosso caso, o problema foi causado pela chamada do serviço da Web usando o método de solicitação OPTIONS (em vez de GET ou POST).
Ainda não sabemos por que o problema apareceu de repente. O serviço da web estava em execução há 5 anos perfeitamente bem em HTTP e HTTPS. Somos os únicos que consomem o serviço da web e ele está sempre usando o POST.
Recentemente, decidimos tornar o site que hospeda apenas o serviço Web SSL. Adicionamos regras de reescrita ao Web.config para converter qualquer coisa HTTP em HTTPS, implantadas e imediatamente começamos a receber, além das solicitações regulares GET e POST, solicitações OPTIONS. As solicitações OPTIONS causaram o erro discutido nesta postagem.
O restante do aplicativo funcionou perfeitamente bem. Mas continuamos recebendo centenas de relatórios de erros devido a esse problema.
Existem vários posts (por exemplo, este ) discutindo como lidar com o método OPTIONS. Fomos lidar com a solicitação OPTIONS diretamente no Global.asax. Isso fez o problema desaparecer.
fonte
Eu estava recebendo esse erro até adicionar (como mostrado no código abaixo) $ .holdReady (true) no início da minha chamada de serviço da web e $ .holdReady (false) após o término. Isso é coisa do jQuery para suspender o estado pronto da página, para que qualquer script dentro da função document.ready esteja esperando por isso (entre outras coisas possíveis, mas desconhecidas para mim).
fonte
Certifique-se de desativar os erros personalizados. Isso pode mascarar o problema original no seu código:
mudança
para
fonte
um WebMethod que requer um ContextKey,
quando essa chave não está definida, obtém a exceção.
Corrigindo-o atribuindo a chave do AutoCompleteExtender.
fonte