1

ファイルを非同期的にサーバーにアップロードするカスタム サーバー コントロールを作成しています。このソリューションは、ファイルをジェネリック Web ハンドラー (別名 ashx) に投稿するフラッシュ要素を使用し、投稿されたファイルを目的の場所に保存します。

それはうまく機能しますが、このアプローチでは、フラッシュ要素からの投稿を処理するために、潜在的に各プロジェクトに ashx ファイルを作成する必要があります。

私が達成したいのは、独自のashx(またはそれを置き換えることができるもの)ハンドラーを使用してファイルをアップロードする、完全にカプセル化されたサーバーコントロールです。

することは可能ですか?どんなアイデアでも大歓迎です。

ありがとう。

4

1 に答える 1

0

コントロールを含むクラス ライブラリ内にハンドラーを含め、次の<httpHandlers>セクションを使用して web.config にのみ登録することができます。

<configuration>
   <system.web>
      <httpHandlers>
         <add verb="*" 
              path="upload.ashx" 
              type="MyControl.MyUploadHandler.New, MyControl" />
     </httpHandlers>
   <system.web>
</configuration>

また、セクションに IIS 7 統合パイプライン モードを使用している場合<handlers>:

<system.webServer>
    <handlers>
        <add name="UploadHandler" 
             verb="*" 
             path="upload.ashx" 
             type="MyControl.MyUploadHandler.New, MyControl" />
    </handlers>
</system.webServer>

また、ASP.NET 4.0 を使用している場合は、ハンドラを動的に登録できるPreApplicationStartMethod インフラストラクチャをチェックアウトできます。

[assembly: WebActivator.PreApplicationStartMethod(typeof(MyControl.StartUp), "PreApplicationStart")]
于 2012-07-11T16:21:07.793 に答える