gestionnaire personnalisé de travail sur le serveur Asp.NET développement mais pas sur IIS 5.1?
-
05-09-2019 - |
Question
Salut les gars, Ive a obtenu un problème stupide.
Mon gestionnaire personnalisé fonctionne 100% sur le serveur Asp.NET développement, mais quand je publierai le site à IIS 5.1 à chaque fois que je tente d'exécuter Commentaire / Find (qui trouve un utilisateur via un appel AJAX) (je sais que la nomination de mon gestionnaire sux !!! :)
Je reçois cette erreur:
La page ne peut être affichée La page que vous recherchez ne peut pas être affichée car l'adresse de la page est incorrecte.
S'il vous plaît essayez ce qui suit:
* 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 - Ressource non autorisés Internet Information Services
Informations techniques (pour le personnel de soutien)
* More information:
Microsoft Support
Mon code pour l'appel AJAX est:
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);
}
S'il vous plaît quelqu'un peut me aider ??
La solution
Assurez-vous que vous avez autorisé l'extension sur le serveur IIS. Le serveur de développement le fait automatially pour vous.
Si vous ouvrez les propriétés du site Web puis passez à l'onglet Répertoire, puis cliquez sur le bouton de configuration.
Essai y ajoutant l'extension que vous utilisez pour le pointage de gestionnaire. Réglez l'exécutable sur le aspnet_isapi.dll (voir l'extension standard .aspx pour trouver où il est sur votre ordinateur) et décocher la case « Vérifier que le fichier existe ».
Je suis brûlé par ce quelques temps et ce problème trié
Colin G
Autres conseils
Sur IIS ne sont pas tous les appels seront traités par le gestionnaire de asp.net (contrairement à cassini le serveur de développement) à moins que l'appel se termine en .aspx, etc. .ashx la dll ISAPI .NET ne traitera pas l'appel.
L'indice est dans le
HTTP 405 - Ressource non autorisée des services Internet
Vous devez mapper aussi le gestionnaire dans le web.config s'il n'y a pas un fichier .ashx correspondant dans le système de fichiers.
Le problème est que quand je l'appelais le gestionnaire sur le dev. serveur j'ai appelé il liek cette
http.open("post", 'Comment/Rate', true);
parce que dans mon web.config je l'a chargé d'attraper tous « Commentaire / » urls et appelez le CommentHandler.ashx au handler il.
<add verb="*" path="Comment/*" type="CoffeeMashup2.CommentHandler"/>
Cependant, pour une raison quelconque dans IIS il n'a pas fonctionné alors j'ai changé l'appel ci-dessus pour
http.open("post", 'CommentHandler.ashx/Rate', true);
et son travaillé 100%
Merci beaucoup les gars pour votre aide