1

高 我正在尝试让一个 http 处理程序在我的本地计算机上的 iis 7.5 中工作。在 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 中的扩展之一。 在此处输入图像描述

在运行时,当 IIS 收到对 ASHX 文件的请求时,它会将其传递给 ASP.NET,然后 ASP.NET 以与页面或用户控件相同的方式解析它,然后您的代码就会运行。

如果您在独立类中编写了处理程序,则只需在 web.config 中注册处理程序。

于 2012-10-23T08:55:32.867 回答