【问题标题】:httpmodule, asp.net application interactionhttpmodule、asp.net应用交互
【发布时间】:2009-03-03 16:31:07
【问题描述】:

是否有任何方法可以从 asp.net 应用程序调用 httpmodule 中的函数,即使 httpmodule 在另一个进程中?更好的是,在应用程序池作为网络花园(>1 个工作进程)运行的情况下,我如何与所有正在运行的 httpmodules 进行通信?

【问题讨论】:

    标签: c# httpmodule


    【解决方案1】:

    您不应指望 HttpModule 的一个实例运行,然后让所有其他实例连接到该实例。

    相反,听起来您应该开发一个服务来完成您想要的工作(或其他一些共享的编程资源,也许是 COM+ 中的单例?),然后让您的 HttpModules 使用某种分布式通信与服务通信技术(我推荐 WCF,一种命名管道通道)。

    【讨论】:

      【解决方案2】:

      我通过两种方式完成了这类事情。 1) 使用远程处理设置 Web 服务以允许此类调用,以及 2) 使用从一台主机向另一台主机的命名空间发出手动 Web 请求。

      如果您的请求可以作为简单的查询字符串工作,并且结果可以作为 html/xml,则第二种方法比实际设置完整的 Web 服务要简单得多(而且开销要少得多)。你已经有了一个请求-响应架构,因为这实际上是一个网络服务器,所以我认为使用它是有意义的。如果安全是一个问题,您可以使您调用的这些辅助页面仅响应来自 localhost/127.0.0.1 的请求。

      【讨论】:

        【解决方案3】:

        为了在网络花园进程之间进行通信,您必须使用 .Net 远程处理或新的 WCF(正如 casperOne 指出的那样)。

        【讨论】:

        • @David:虽然 Remoting 并没有消失,但 WCF 现在通常是更好的选择。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 2011-06-05
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        相关资源
        最近更新 更多