0

こんにちはみんな、iveは愚かな問題を抱えています。

カスタムハンドラーはAsp.NET開発サーバーで100%動作していますが、Comment / Find(AJAX呼び出しを介してユーザーを検索する)を実行しようとするたびにサイトをIIS 5.1に公開すると、ハンドラーの名前がわかります。 !! :)

このエラーが発生します:

ページが表示されないページアドレスが間違っているため、探しているページを表示できません。

次のことを試してください。

* 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.

HTTP405-リソースは許可されていませんインターネットインフォメーションサービス

技術情報(サポート担当者向け)

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

誰か助けてもらえますか?

4

3 に答える 3

3

IIS では、呼び出しが .aspx、.ashx などで終了しない限り、(開発サーバーの cassini とは異なり) すべての呼び出しが asp.net ハンドラーによって処理されるわけではありません。.NET isapi dll は呼び出しを処理しません。

手がかりは

HTTP 405 - リソースが許可されていません Internet Information Services

ファイル システムに対応する .ashx ファイルがない場合は、web.config でハンドラーをマップする必要もあります。

于 2009-04-08T11:44:17.783 に答える
3

IIS サーバーで拡張機能を許可していることを確認してください。開発サーバーはこれを自動的に行います。

Web サイトのプロパティを開いた場合は、[ホーム ディレクトリ] タブに移動し、構成ボタンをクリックします。

そこに、ハンドラーのポインティングに使用している拡張機能を追加してみてください。実行可能ファイルを aspnet_isapi.dll に設定し (標準の .aspx 拡張子を調べて、コンピューター上の場所を見つけます)、[ファイルの存在を確認する] のチェックを外します。

私はこれで数回火傷を負いましたが、これで問題が解決しました

コリン・G

于 2009-04-08T11:45:27.920 に答える
0

問題は、開発者でハンドラーを呼び出していたときでした。サーバー私はそれを嘘だと呼んでいた

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

私のweb.configでは、すべての「Comment /」Urlをキャッチし、CommentHandler.ashxを呼び出してそれを処理するように指示したためです。

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

ただし、何らかの理由でIISで機能しなかったため、上記の呼び出しを次のように変更しました

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

そしてそれは100%働いた

助けてくれてどうもありがとう

于 2009-05-06T08:38:47.093 に答える