2009-08-13 6 views
1

私はいくつかのAJAX呼び出しを行うためにjQueryを使用しようとしていますが、IIS 6で(.NETへの)ワイルドカードマッピングが有効になっているため、動作していないようです。マッピングを無効にすると、すべてが魔法のように動作します。

私は、Webメソッド属性を.aspxページと.asmx Webサービスの両方のメソッドに配置しましたが、どちらも機能しません。ここで私はAJAXのために使用していたサンプルのURLを呼び出します:

localhost/UserChecker.aspx/CheckIfUserEmailsExists

localhost/UserChecker.asmx/CheckIfUserEmailsExists

私はそれは.NETがURLの解釈されている方法で何かである必要があります理解が、私は全くわからないんだけどなぜ。もっと重要なのは、ワイルドカードマッピングを無効にする以外に、どうやって修正するのか分かりません!他の方法はありますか?

UPDATE

私が使用しているCMS(Kentico)いくつかのURLルーティングを行いますが、私はglobal.asax.csコード内のルーティングをスキップしても、私はまだ404
を取得前もって感謝します!IISのワイルドカードマッピングがAJAX呼び出しを壊すのはなぜですか?

+0

また、URLルーティングを行っていますか? –

+0

更新を確認してください。 –

答えて

2

最初のワイルドカードハンドラを経由して最初の要求を実行します。これは、CMSによるURL書き換え(またはURLルーティング)の前に実行されます。

私はあなたが404を取得している理由だと思います。

また、実際のURLが後で別のものに書き換えられる場合のシナリオに対応するために、ワイルドカードマッピングの「ファイルが存在する」チェックボックスを無効にすることもできます。

1

これは完全な答えではありませんが、解決策の方向を示すことを願っています。

ブラウザでURLに直接アクセスし、適切に配置されたブレークポイントを使用して問題を追跡しましたか?

404を取得している場合、ルーティングのルールが機能していないように思えます。

[あなたが見ている行動について、もう少し情報を与えることができれば、私はこれを更新します]

UPDATE

私は何が起こっされるかもしれないが、このだと思う:

あなたは」拡張子を持つファイルのための別々のマッピングを提供する再(この例では.aspxのとの.asmx):

はlocalhost/UserChecker.aspx/CheckIfUserEmailsExists

localhost/UserChecker.asmx/CheckIfUserEmailsExists

これらのマッピングは、ワイルドカードマッピングをオフにし、 '/ CheckIfUserEmailsExists'を使用するか無視するときに使用されます。 ワイルドカードマッピングをオンにすると、経路指定はアプリケーションに正しく経路指定する方法を知らせていません。

拡張機能を削除した場合(ワイルドカードマッピングを有効にしている場合)は、次の作業を行いますか? IIS上のワイルドカードマッピングで

はlocalhost/UserChecker/CheckIfUserEmailsExists

+0

私はそれをデバッグしようとしましたが、私が探しているものが完全にはわかりません。私はglobal.asax.csの 'Application_BeginRequest'イベントハンドラにブレークポイントを置き、Kenticoのルーティングコードをスキップしましたが、それでも私に404が与えられます。サービスやページにアクセスするとうまくいきます。しかし、 ".NET Invoke"構文を追加して "/"とメソッド名を追加すると、動作しません。ワイルドカードマッピングを無効にすると、すべて正常に動作します。 –

+0

拡張機能を削除しても機能しません。どのように役立つでしょうか? IISと.NETはどのようにして要求の管理方法を知ることができますか? –

+0

私はKenticoを知らないし、ワイルドカードを使用しようとしているという事実は、あなたがasp dll経由ですべてのリクエストを送信しようとしていることを意味しています - 質問を誤解しない限り! – Lewis

0

除外リストに適切なURLを追加する:[サイトマネージャー] - [設定]タブの[除外されたURL]設定を使用します。 (basic help documentation

0

あなたのCMSフレームワーク外のUR1をチェックすることをお勧めします。問題はURLルーティングでなければなりません。ワイルドカードマッピングなしでどのように動作していたかはわかりません。

質問: 1.ワイルドカードマッピングなしで試してみるとあなたのCMSは稼動していますか? 2.このCMSシステムはIISとどのように対話しますか。 IASPI dll?またはHTTPハンドラ/モジュール?

関連する問題