0

ASP .Net Web サイトを開発しています。.videoImage 拡張子を持つリソースを対象とするリクエストに応答するカスタム HTTP ハンドラーを作成しました。
私の handler に対応するファイルの最初の行は次のとおりです。

<%@ WebHandler Language="C#" Class="CompleteSubtitles.VideoImage" %>

using System;
using System.Web;
using System.IO;
using SubtitleSounds.DataManagement;

namespace CompleteSubtitles
{
    public class VideoImage : IHttpHandler
    {
        ...
    }
}

ハンドラー ファイルは、Web サイトのルート フォルダーのサブフォルダーにあります。
次のように、Web サイトのルート web.config ファイルでハンドラーを構成しました。

<configuration>
    <system.web>
        ...

        <httpHandlers>
          <add verb="*" path="*.videoImage" type="CompleteSubtitles.VideoImage" />
        </httpHandlers>
    </system.web>
</configuration>

ページをロードするときに、CompleteSubtitles.VideoImage タイプのロードに失敗したことを知らせる ASP .Net エラー メッセージが表示されました。
誰も理由を知っていますか?
どんな助けでも大歓迎です。

4

3 に答える 3

1

クラスの完全な名前 (HttpHanlder) を次のように指定する必要があります。

 <configuration> 
 <system.webServer>
 <handlers> 
    <add verb="*" path="*.sample" name="HelloWorldHandler" type="HelloWorldHandler"/>
 </handlers>
 </system.webServer>
 </configuration>

詳細については、ここをクリックしてください

それが役立つことを願っています。

于 2013-02-28T17:32:57.357 に答える
1

正確なエラー メッセージが表示されていないため、確認できませんが、ハンドラーと Web フォームに関する私の経験からすると、次のように動作します。

  • APP_CODEフォルダーに配置したとしても、ハンドラーを単純なVB / CSファイルにすることはできません(私と一緒に働いたことはありません)。DLL に配置する必要があります。そのためには、常に別のクラス ライブラリを使用します。

  • ホストが IIS 7 を使用している場合、system.web/httpHandlersが機能しないため、system.webServerを追加する必要があります。念のため両方保管してます。これがサンプルです(bNet.Ferramentasは私のDLLファイルです):

>

<system.web>
    <httpHandlers>
        <add verb="*" path="sitemap.ashx" type="bNet.Ferramentas.SiteMapHandler, bNet.Ferramentas" />
    </httpHandlers>
</system.web >


<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
        <add verb="*" name="bnetSitemap" path="sitemap.ashx" type="bNet.Ferramentas.SiteMapHandler, bNet.Ferramentas"/>
    </handlers>
</system.webServer>

于 2013-02-06T12:40:38.800 に答える
0

私の問題を解決した方法は次のとおり
です。App_Codeフォルダーにハンドラーを表すクラスを作成しました。
私のハンドラ ファイルの拡張子は「.cs」であり、「.ashx」ではありません。
私のweb.configでのハンドラーの宣言は次のとおりです。

<httpHandlers>
  <add verb="*" path="*.videoImage" type="CompleteSubtitles.VideoImageHandler" />
</httpHandlers>
于 2013-02-08T09:11:33.950 に答える