IIS 7.5 无法使用代码隐藏文件加载自定义 HTTP 处理程序

2023-12-05

在过去的 2 天里,我试图让我的自定义 HTTP 处理程序正常工作, 但没有结果。我收到以下错误:

无法加载类型“AlarmHandler”。 描述:未处理 执行当前 Web 请求期间发生异常。 请查看堆栈跟踪以获取有关错误和的更多信息 它起源于代码的地方。

异常详细信息:System.Web.HttpException:无法加载类型 '警报处理程序'。

来源错误:

执行期间产生未处理的异常 当前的网络请求。有关原产地和地点的信息 可以使用下面的异常堆栈跟踪来识别异常。

我遵循了几个教程,但我想我错过了一些小东西。 我正在使用以下配置:

  • IIS 7.5
  • DefaultPool 设置为集成模式
  • 所有文件都位于根目录(C:\inetpub\wwwroot)
  • IIS7.5 中没有定义处理程序映射
  • 网络项目

AlarmHandler.ashx.cs:

using System.Web;
public class AlarmHandler : IHttpHandler
{
    // Constructor.
    public AlarmHandler() { }


    public void ProcessRequest(HttpContext context)
    {
        HttpRequest Request = context.Request;
        HttpResponse Response = context.Response;

        // Test code.
        Response.Write("<html>");
        Response.Write("<body>");
        Response.Write("<h1>Hello from a synchronous custom HTTP handler.</h1>");
        Response.Write("</body>");
        Response.Write("</html>");
    }


    public bool IsReusable
    {
        get { return false; }
    }
}

警报.ashx:

<% @ WebHandler language="C#" class="AlarmHandler" codebehind="AlarmHandler.ashx.cs" %>

网络配置:

<configuration>
    <system.webServer>
        <handlers>
            <add name="AlarmHandler" path="*.ashx" verb="*" type="IHttpHandler" />
        </handlers>
    </system.webServer>
</configuration>

对我有用的是改变:

<% @ WebHandler language="C#" class="AlarmHandler" codebehind="AlarmHandler.ashx.cs" %>

To:

<% @ WebHandler language="C#" class="Namespace.AlarmHandler" codebehind="AlarmHandler.ashx.cs" %>

Where Namespace是其中的命名空间AlarmHandler被宣布。

考虑到这一点,我认为将处理程序注册更改为此可能是一个好主意:

<add name="AlarmHandler" path="*.ashx" verb="*" type="Namespace.AlarmHandler" />

顺便说一句,我在很多场合使用过 HTTP 处理程序,但从来没有费心去注册它们(在我的例子中,我倾向于通过 Ajax 显式调用它们),因此这一行甚至可能没有必要。

Edit:

在这种情况下,您没有使用 Visual Studio,这使得事情有点不同,因为您不会有 bin 目录,因此我们必须对处理程序做一些不同的事情。

目前,您的处理程序分为 ASHX 和 CS 文件。这通常没问题,但在您的情况下,我们需要将它们结合起来。

这应该是你的内容Alarms.ashx文件(您不需要AlarmHandler.ashx.cs不再文件):

<% @ WebHandler language="C#" class="AlarmHandler" %>

using System.Web;

public class AlarmHandler : IHttpHandler
{
    // Constructor.
    public AlarmHandler() { }

    public void ProcessRequest(HttpContext context)
    {
        HttpRequest Request = context.Request;
        HttpResponse Response = context.Response;

        // Test code.
        Response.Write("<html>");
        Response.Write("<body>");
        Response.Write("<h1>Hello from a synchronous custom HTTP handler.</h1>");
        Response.Write("</body>");
        Response.Write("</html>");
    }

    public bool IsReusable
    {
        get { return false; }
    }
}

顺便说一句,您所遵循的教程几乎肯定会假设您使用的是 Visual Studio,这可能会解释您遇到的一些困难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS 7.5 无法使用代码隐藏文件加载自定义 HTTP 处理程序 的相关文章

随机推荐

  • 使用具有可变数量参数的 Scipy curve_fit 进行优化

    假设我们有下面的函数来优化 4 个参数 我们必须如下编写函数 但如果我们想要具有更多参数的相同函数 我们必须重写函数定义 def radius z a0 a1 k0 k1 k np array k0 k1 a np array a0 a1
  • 在 React 中编辑多个输入字段

    请检查此代码https stackblitz com edit react koqfzp file src Section js 每次我添加一个项目时 我也会添加一个我想要编辑的随机数 该数字在 MUI 文本字段组件中呈现
  • 如何在不阻塞的情况下从套接字读取数据

    我在处理服务器时遇到问题 向我发送初始 问候标头 smtp 服务器 我需要在发送任何命令并从服务器接收任何答案之前读取此标头 但我不知道如何执行此操作 因为 Julia 似乎缺乏在不阻塞的情况下从 IO 流读取的可能性 read 命令及其类
  • Powershell 中的 RegKey 问题

    我在使用 Powershell 中的注册表项时遇到问题 密钥 T E S T 由未知进程生成 然后我尝试使用以下方法覆盖它 Path setting grouplocators Name T E S T New Item Path Path
  • 如何从串行 python 脚本使用 mpi4py 应用程序

    我尝试制作一个基于 mpi4py 的库 但我想在串行 python 代码中使用它 python serial source py 但里面序列源 py存在一些名为的函数平行杆 from foo import parallel bar Can
  • C++ 动态分配 std::map 比较器

    因此 我有两个包含 std map 成员的类 其功能实际上相同 只是一个映射的顺序是 std less 另一个映射的顺序是 std greater 如果我创建一个抽象父类并声明一个映射成员 是否有任何方法可以在派生类构造函数中动态分配该成员
  • as3 文本字段更改字符串值

    我是Flash中as3的新手 我需要显示警报 在警报框中显示的文本字段如下 ou ra ro la atio hata 但我想显示的真实文本就像 鼠标拖放播放动作哈塔 在代码对中 文本字段类似于 鼠标拖放播放动作哈塔 当我调试代码时 我也看
  • UIWebView 仍然存在于 Google 移动广告中

    我正在尝试为 IOS 构建 但上传到 ITuneconnect 后收到此消息 ITMS 90809 已弃用的 API 使用 不再接受使用 UIWebView 的新应用程序 相反 使用 WKWebView 可以提高安全性和可靠性 了解更多 h
  • Google App Engine 中的进度条

    我有一个 Google App Engine 应用程序 它对远程 API 执行大约 30 50 次调用 每次调用大约需要一秒钟 因此整个操作很容易需要一分钟 目前 我在站点的 post 函数内循环执行此操作 因此在整个操作完成之前不会打印响
  • Visual Studio 2010 中缺少 asp.net Web 应用程序模板

    我安装了 Visual Studio 2010 终极版 当我单击 新建项目 gt Visual Basic 或 C gt Web 时 我得到的唯一选项是 AjaxControlExtender AjaxServerControl 和 ASP
  • Java“虚拟机”与Python“解释器”的说法?

    似乎很少读到 Python 虚拟机 而在 Java 中却一直使用 虚拟机 两者都解释字节码 为什么称一个为虚拟机而另一个为解释器 在本文中 虚拟机 指的是进程虚拟机 而不是指 系统虚拟机 例如 Qemu 或 Virtualbox 进程虚拟机
  • 在 HTML 中为 target="_blank" 打开新窗口

    a href facebook com sharer target blank Share this a 当用户单击它时 如何在新窗口中使其具有一定的宽度和高度 在firefox中 当前代码仅打开一个新选项卡 而不是新窗口 要在包含尺寸和所
  • 如何在 ibm worklight 中打开本机相机

    Ibm Worklight 有调用本机应用程序的示例 但它是在 worklight 本身中创建的 例如 此示例中的 module 09 1 Android CombiningNativeAndWebPages 在 android 文件夹本身
  • 是否可以从另一个容器启动已停止的容器

    有两个容器A和B 一旦容器A启动 就会执行一个进程 然后容器就会停止 容器 B 只是一个 Web 应用程序 比如expressjs 是否可以从容器 B 启动 A 可以授予容器对 docker 的访问权限 以便它可以在主机上生成其他容器 您可
  • awk 命令接受两个变量作为参数并返回一个值

    我有一个有 50 行的文件 每行由三列组成 前两列是变量 这将作为参数传递以返回第三列的值 对于前 command file txt 是文件 它包含 A B 10 C D 20 E F 30 G H 50 I J 70 我有一个包含以下命令
  • Android 共享首选项和数组

    我创建了一个天气小部件 我将其配置存储在SharedPreferences 小部件由服务更新 我将天气信息和天气预报一起保存在一个数组中 晚上手机关机后 我发现数组值消失了 也许系统暂停了 服务 有没有办法将数组存储在SharePrefer
  • 如何使用 NSPredicate 判断 Int 列表是否包含 Int 数字?

    我有一个 Realm 模型Person谁拥有标签属性 let tags List
  • C 编程中的输入重定向?

    我试图将一个名为 data1 的数据文件重定向到我的程序中 但我不断收到segmentation fault 当我尝试时 w data1然后它会正确读取它 但是当我这样做时 w lt data1然后弹出错误 我必须使用第二种方式来完成我的作
  • 将 java.util.Date 转换为 java.sql.Timestamp 结果为错误值

    服务器端代码 服务器时区是 UTC Date aDate new Date java sql Timestamp aTimestamp new java sql Timestamp aDate getTime 客户端 移动应用程序 时区 G
  • IIS 7.5 无法使用代码隐藏文件加载自定义 HTTP 处理程序

    在过去的 2 天里 我试图让我的自定义 HTTP 处理程序正常工作 但没有结果 我收到以下错误 无法加载类型 AlarmHandler 描述 未处理 执行当前 Web 请求期间发生异常 请查看堆栈跟踪以获取有关错误和的更多信息 它起源于代码