1

高 ローカル マシンの iis 7.5 で動作する http ハンドラを取得しようとしています。Visual Studio iis のモードでは、ハンドラーは Web 構成が設定された状態で動作します。

<httpHandlers>
  <add verb="GET" path="ShowImages.ashx" type="achangeoftack_new_web.ShowImages" />
</httpHandlers>

しかし、展開するとエラーがスローされるため、に設定しました

<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
  <add name="ShowImages.ashx" verb="GET" path="~/ShowImages.ashx" type="achangeoftack_new_web.ShowImages" />
</handlers>
<validation validateIntegratedModeConfiguration="true" />

しかし、ハンドラーが機能していてもまだうまくいきません。私は今、すべてを試したと思います。髪を引き始めています。

4

1 に答える 1

0

ASHX を使用している場合は、web.config で登録する必要はありません。たとえば、ページの URL のように使用するだけです。

<img src="ShowImages.ashx?id=SomeImageId" />

そしてそれはうまくいくでしょう。したがって、これらの要素を web.config から取り出して、エラーが修正されるかどうかを確認します。

これが機能する理由
マシン上で 実行する場合aspnet_regiis、ASHX は IIS に登録される拡張機能の 1 つです。 ここに画像の説明を入力

実行時に IIS が ASHX ファイルの要求を受け取ると、IIS はそれを ASP.NET に渡し、ASP.NET はページまたはユーザー コントロールと同じ方法で解決し、コードが実行されます。

ハンドラーをスタンドアロン クラスに記述した場合は、ハンドラーを web.config に登録するだけで済みます。

于 2012-10-23T08:55:32.867 に答える