如何在 DotNetNuke 上部署通用 HTTP 处理程序

How to deploy a Generic HTTP Handler on DotNetNuke

我使用 Studio 2012 创建了一个通用处理程序。我可以在我的本地计算机上调用它。当我将它移至我的 IIS 8.5 服务器时,我收到一条消息说 "An Internal Server Error has occurred" 事件查看器将错误代码列为 1310。

为了部署,我将转到我的项目文件夹并复制 TestHandler.ashx 和 TestHandler.ashx.cs 并将它们放在根文件夹中。此文件夹包含 运行 DotNetNuke 8.0 CMS 系统的所有文件。我不清楚 DotNetNuke 是否在干扰,或者是否有其他文件要复制,但我读过没有必要使用 web.config.

注册 ashx

我还没有向 TestHandler 添加自定义代码。

public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/plain";
    context.Response.Write("Hello World");
}

因为您有 2 个处理程序文件(.ashx 和 ashx.cs),您可能在项目中创建了它。您是否编译它并将 .dll 文件复制到 DotNetNuke 安装的 /bin 目录中?如果不是,事件查看器中的确切错误消息是什么?

但是这个片段不需要 2 个文件,只需将其保存为 .ashx 文件即可。

<%@ WebHandler Language="C#" Class="Handler1" %>

using System;
using System.Web;

public class Handler1 : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Hello World");
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}