2011-08-03 10 views
1

は、このコードは例外をスローします:IHttpHandlerFactoryの実装時にGetHandlerがnullを返すことはできますか?

public class MyHttpHandlerFactory : IHttpHandlerFactory 
{ 
    public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated) 
    { 
     if (...) 
      return null; 

      ... 

     return new MyHttpHandler(); 
    } 
} 
+0

Visual Studioで "F5"を押して調べてください。 – RPM1984

+0

私は言い換えるつもりです:これは実行時の制限ですか? MSDNのドキュメントはこの状況を参照していません。私たちのアプリでは、このコードは不安定な動作を引き起こします –

答えて

1

あなたはこのarticle on MSDNを見てみた場合、あなたは彼らの例では、彼らはGetHandlerからnullを返すことがわかります。ただし、リクエストがGETまたはPOSTでない場合は、nullが返されます。これは、web.configでファクトリを設定した方法に基づいて決して行われません。

ASP.NET 4.0/IIS 7.5/Integrated Pipelineを使用して記事のコードを使用してクイックサンプルを設定し、GetHandlerへの呼び出しでnullを返すと、空の200/OK応答が表示されますサーバーから返されます(私はFiddlerを使用してチェックしました)。したがって、ASP.NET 4.0(少なくとも)はこの条件を正常に処理するようです。尋ねられたように質問に答えるために、nullを返すことにランタイム制限があるとは思われません。ただし、実際には、HandlerFactoryが受け取る要求を制限して、nullを返さないようにするか、少なくとも空の200/OKを返すこのハンドラファクトリへの要求にアプリケーションの他の部分がどのように反応するかを検討することができます応答。

関連する問題