gestore personalizzato di lavoro sul server di Asp.NET lo sviluppo, ma non su IIS 5.1?

StackOverflow https://stackoverflow.com/questions/729599

  •  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 ??

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top