0

私はIIS7で少し遊んでいますが、global.asaxでイベントを手動でキャッチし、ASPhttphandlerパイプラインを完全にスキップしようとしています。この目的のために、私は設定しました

<httpHandlers>
    <clear/>
</httpHandlers>
<httpModules>
    <clear/>
</httpModules>   

しかし、サーバーに電話するとYSODが表示されます

[HttpException]: No http handler was found for request type 'GET'
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

IISが従来のパイプラインを使用して処理するのを完全に防ぐにはどうすればよいですか?私が欲しいのは、HttpApplication.Initで設定されたイベントハンドラーと非同期メソッドでResponse.Writesを実行することです。

編集:私の質問はobvでした。少し不明確です(時間を無駄にした人には申し訳ありません)-私がやろうとしていることはかなり型破りなので、もっとよく説明する必要がありました。ハンドラーをHttpApplicationの非同期メソッドに接続することにより、IISを使用してnode.jsと同様の方法でWeb要求を処理できるかどうかを確認しようとしています。この目的のために、HttpHandlerを使用したくないので、ASPがぐらつきをスローするのをやめる必要があります。現在、私の最善の策は、すべてのリクエストにNullHttpHandlerを使用することですが、HttpHandlerシステムを完全に無効にできるかどうか疑問に思っています。あなたのアイデア!

4

3 に答える 3

0

IISが必要です。要求はIISパイプラインで開始され、ASP .NETがそれを処理するには、IISがhttpハンドラーを見つけることができる必要があり、要求をに渡すことができます。適切なハンドラーが見つかった場合にのみ、要求をASP.NETに渡します。

于 2010-04-01T11:19:14.917 に答える
0

StaticFileHandlerを再度追加する必要があります。

  <httpHandlers>
    <clear />
    <add verb="*" path="*.jpg" type="System.Web.StaticFileHandler" />
  </httpHandlers>
于 2010-04-01T11:18:15.867 に答える
0

私はそれが少し古いことを知っています...しかしあなたがあなたのieにいるなら。ハンドラーを割り当てるBeginRequestイベントでは、このエラーは発生しないはずであり、web.configのhandlers-sectionを空のままにしておくことができます。HttpApplicationHttpContext.Current.Handler

于 2011-01-15T17:18:50.267 に答える