【问题标题】:How to deploy a Generic HTTP Handler on DotNetNuke如何在 DotNetNuke 上部署通用 HTTP 处理程序
【发布时间】:2017-01-05 10:46:27
【问题描述】:

我使用 Studio 2012 创建了一个通用处理程序。我可以在我的本地计算机上调用它。当我将它移到我的 IIS 8.5 服务器时,我收到一条消息“发生内部服务器错误”事件查看器将错误代码列为 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");
}

【问题讨论】:

    标签: c# dotnetnuke iis-8 generic-handler


    【解决方案1】:

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

    但是这个sn-p不需要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;
            }
        }
    
    }
    

    【讨论】:

    • 我将 dll 复制到 /bin 并且它现在可以工作了.. 这确实导致了另一个问题.. 我在几个地方读过通用处理程序将实时编译而 ASP. Net Handler 要求在 web.config 中复制和引用 dll。知道为什么我的 ashx 没有在服务器上编译吗?谢谢!马丁。
    • 我自己不确定,也许 ashx 必须是单页(比如我的 sn-p)。这是在运行时编译的,因为......它可以工作。类似问题请见stackoverflow.com/questions/25510189/…
    猜你喜欢
    • 2013-02-15
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    相关资源
    最近更新 更多