Пользовательский обработчик, работающий на сервере разработки Asp.NET, но не на IIS 5.1? - PullRequest
0 голосов
/ 08 апреля 2009

Привет, ребята, у меня глупая проблема.

Мой пользовательский обработчик работает на 100% на сервере разработки Asp.NET, но когда я публикую сайт в IIS 5.1 всякий раз, когда я пытаюсь запустить Comment / Find (который находит пользователя через вызов AJAX) (я знаю, как называется обработчик sux !!! :)

Я получаю эту ошибку:

Страница не может быть отображена Страница, которую вы ищете, не может быть отображена, потому что адрес страницы неправильный.

Пожалуйста, попробуйте следующее:

* 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 - ресурс не разрешен Информационные Интернет-услуги

Техническая информация (для обслуживающего персонала)

* More information:
  Microsoft Support

Мой код для вызова 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);

}

Пожалуйста, кто-нибудь может мне помочь ??

Ответы [ 3 ]

3 голосов
/ 08 апреля 2009

Убедитесь, что вы разрешили расширение на сервере IIS. Сервер разработки делает это автоматически для вас.

Если вы откроете свойства веб-сайта, перейдите на вкладку «Домашний каталог» и нажмите кнопку настройки.

Там попробуйте добавить расширение, которое вы используете для указания обработчика. Установите исполняемый файл aspnet_isapi.dll (посмотрите на стандартное расширение .aspx, чтобы найти его на своем компьютере) и снимите флажок «Проверить, существует ли файл».

Я был сожжен этим пару раз, и это решило проблему

Колин Г

3 голосов
/ 08 апреля 2009

В IIS не все вызовы будут обрабатываться обработчиком asp.net (в отличие от cassini сервера разработки), если вызов не заканчивается на .aspx, .ashx и т. Д. .NET isapi dll не будет обрабатывать вызов.

Подсказка в

HTTP 405 - Ресурс не разрешен Информационные службы Интернета

Вам также потребуется сопоставить обработчик в файле web.config, если в файловой системе нет соответствующего файла .ashx.

0 голосов
/ 06 мая 2009

Проблема заключалась в том, что когда я вызывал обработчик на устройстве разработки. Сервер, который я называл это Liek это

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

потому что в моем файле web.config я дал указание перехватить все URL-адреса "Comment /" и вызвать CommentHandler.ashx для его обработки.

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

Однако по какой-то причине в IIS это не сработало, поэтому я изменил приведенный выше вызов на

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

и сработало 100%

Большое спасибо, ребята, за вашу помощь

...