gestore personalizzato di lavoro sul server di Asp.NET lo sviluppo, ma non su IIS 5.1?
-
05-09-2019 - |
Domanda
Ciao ragazzi, Ive ha ottenuto un problema stupido.
Il mio gestore personalizzato sta lavorando al 100% sul server di Asp.NET sviluppo, ma quando ho pubblicare il sito per IIS 5.1 ogni volta che si tenta di eseguire Commento / Trova (che trova un utente tramite una chiamata AJAX) (so che la denominazione della mia handler sux !!! :)
ottengo questo errore:
La pagina non può essere visualizzata La pagina che stai cercando non può essere visualizzata perché l'indirizzo della pagina non è corretto.
Si prega di provare la seguente:
* 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 - risorsa non consentito Internet Information Services
Informazioni tecniche (per il personale di supporto)
* More information:
Microsoft Support
Il mio codice per la chiamata 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);
}
Si prega di qualcuno mi può aiutare ??
Soluzione
Assicurarsi di aver permesso l'estensione del server IIS. Il server di sviluppo fa questo automatially per voi.
Se si apre le proprietà del sito web poi andare al Home Directory scheda e fare clic sul pulsante di configurazione.
In c'è prova ad aggiungere l'estensione che si sta utilizzando per il puntamento gestore. Impostare l'eseguibile al aspnet_isapi.dll (guardare l'estensione aspx standard per trovare dove è sul computer) e deselezionare "Controlla il file esiste".
Sono stato bruciato da questo un paio di volte e questo ordinato il problema
Colin G
Altri suggerimenti
Il non IIS tutte le chiamate saranno trattati dal gestore asp.net (a differenza cassini il server di sviluppo) a meno che la chiamata termina in aspx, Ashx ecc la dll .NET isapi non elaborare la chiamata.
L'indizio è nel
HTTP 405 - risorsa non consentito Internet Information Services
Sarà necessario mappare anche il gestore nel web.config se non c'è un corrispondente file di Ashx nel file system.
Il problema era che quando mi stava chiamando il gestore sulla dev. assistente mi stava chiamando lo liek questo
http.open("post", 'Comment/Rate', true);
perché nel mio web.config ho dato istruzioni per catturare tutto "Commento /" URL e chiamare il CommentHandler.ashx al gestore di esso.
<add verb="*" path="Comment/*" type="CoffeeMashup2.CommentHandler"/>
Tuttavia, per qualche motivo in IIS non ha funzionato così ho cambiato la chiamata sopra per
http.open("post", 'CommentHandler.ashx/Rate', true);
e il suo operato al 100%
Grazie ragazzi per il vostro aiuto