manipulador personalizado trabalhando em servidor Desenvolvimento Asp.NET mas não no IIS 5.1?
-
05-09-2019 - |
Pergunta
Oi, Ive tem um problema estúpido.
manipulador My Custom está trabalhando 100% no servidor Desenvolvimento Asp.NET mas quando eu publicar o site para IIS 5.1 Sempre que eu tento executar Comment / Procurar (que encontra um usuário através de uma chamada de AJAX) (eu sei que a nomeação do meu manipulador sux !!! :)
eu recebo este erro:
A página não pode ser exibida A página que você está procurando não pode ser exibida porque o endereço da página é incorreta.
Por favor, tente o seguinte:
* If you typed the page address in the Address bar, check that it is entered correctly.
* Open the home page and then look for links to the information you want.
HTTP 405 - Recurso não permitido Internet Information Services
Informações técnicas (para equipe de suporte)
* More information:
Microsoft Support
Meu código para a chamada AJAX é:
function findUser(skip, take) {
http.open("post", 'Comment/FindUser', true);
//make a connection to the server ... specifying that you intend to make a GET request
//to the server. Specifiy the page name and the URL parameters to send
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader('Criteria', document.getElementById('SearchCriteria').value);
http.setRequestHeader("Skip", skip);
http.setRequestHeader("Take", take);
http.setRequestHeader("Connection", "close");
//display loading gif
document.getElementById('ctl00_ContentPlaceHolder1_DivUsers').innerHTML = 'Loading, Please Wait...<br /><img src="Images/loading.gif" /><br /><br />';
//assign a handler for the response
http.onreadystatechange = function() { findUserAction(); };
//actually send the request to the server
http.send(null);
}
Por favor, alguém pode ajudar-me ??
Solução
Certifique-se de ter permitido a extensão no servidor IIS. O servidor de desenvolvimento faz isso automatially para você.
Se você abrir as propriedades do site, em seguida, ir para a guia Diretório e clique no botão de configuração.
De lá tentar adicionar a extensão que você está usando para o apontar manipulador. Definir o executável para o aspnet_isapi.dll (olhar para o extensão.ASPX padrão para encontrar onde ele está no seu computador) e desmarque a opção "Verificar esse arquivo existe".
Eu tenho sido queimado por isso um par de tempo e este classificados o problema
Colin G
Outras dicas
No IIS não todas as chamadas serão processadas pelo manipulador asp.net (ao contrário de Cassini o servidor de desenvolvimento) a menos que a chamada termina em aspx, .ashx etc. .NET isapi DLL não irá processar a chamada.
A pista está no
HTTP 405 - Recurso não permitido Internet Information Services
Você precisará também mapear o manipulador no web.config se não houver um arquivo .ashx correspondente no sistema de arquivos.
O problema foi que, quando eu estava chamando o manipulador no desenv. servidor que eu estava chamando-liek este
http.open("post", 'Comment/Rate', true);
porque no meu web.config i encarregou-o de pegar todos "Comment /" URLs e chamar o CommentHandler.ashx ao manipulador de-lo.
<add verb="*" path="Comment/*" type="CoffeeMashup2.CommentHandler"/>
No entanto, por algum motivo no IIS que não funcionava então eu mudei a chamada acima para
http.open("post", 'CommentHandler.ashx/Rate', true);
e seu trabalhou%
100graças a lot guys pela sua ajuda