¿El controlador personalizado funciona en el servidor de desarrollo Asp.NET pero no en IIS 5.1?

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

  •  05-09-2019
  •  | 
  •  

Pregunta

Hola chicos, tengo un problema estúpido.

Mi controlador personalizado funciona al 100% en el servidor de desarrollo Asp.NET, pero cuando publico el sitio en IIS 5.1 cada vez que intento ejecutar Comment/Find (que encuentra un usuario a través de una llamada AJAX) (¡conozco el nombre de mi controlador sux! !!:)

Recibo este error:

No se puede mostrar la página La página que está buscando no se puede mostrar porque la dirección de la página es incorrecta.

Por favor intenta lo siguiente:

* 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 no permitido Servicios de información de Internet

Información técnica (para personal de soporte)

* More information:
  Microsoft Support

Mi código para la llamada AJAX es:

 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);

}

¿¿Puede alguien ayudarme??

¿Fue útil?

Solución

Asegúrese de que ha permitido la extensión en el servidor IIS. El servidor de desarrollo hace esto automatially para usted.

Si abre las propiedades del sitio web a continuación, ir al directorio principal de tabulación y haga clic en el botón de configuración.

En no trate de añadir la extensión que está utilizando para el manejador de puntero. Ajuste el ejecutable a la aspnet_isapi.dll (mirar la extensión .aspx estándar para encontrar dónde se encuentra en su computadora) y desactive la casilla "Comprobar que el archivo existe".

Se me ha quemado por esto un par de tiempo y esto ordenados el problema

Colin G

Otros consejos

En IIS, no todas las llamadas serán procesadas por el controlador asp.net (a diferencia de cassini, el servidor de desarrollo) a menos que la llamada termine en .aspx, .ashx, etc.el .NET isapi dll no procesará la llamada.

La pista está en el

HTTP 405: recurso no permitido Servicios de información de Internet

También deberá asignar el controlador en web.config si no hay un archivo .ashx correspondiente en el sistema de archivos.

El problema fue que cuando me estaba llamando el manejador en el prog. servidor estaba llamando a que este liek

http.open("post", 'Comment/Rate', true);

porque en mi web.config di instrucciones a todo "ni" Comentarios / URLs y llamar a la CommentHandler.ashx al controlador de la misma.

 <add verb="*" path="Comment/*" type="CoffeeMashup2.CommentHandler"/>

Sin embargo, por alguna razón en IIS no trabajó así que cambié la llamada anterior a

http.open("post", 'CommentHandler.ashx/Rate', true);

y su trabajado 100%

Muchas gracias chicos por su ayuda

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top