1

Is there any way to call functions in a httpmodule from an asp.net application, even if the httpmodule is in another process? Better yet, in a situation where the application pool is running as a web garden (>1 worker process) how can I communicate with all of the httpmodules that are running?

4

3 回答 3

2

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

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

于 2009-03-03T16:44:11.173 回答
0

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

于 2009-03-03T16:43:02.440 回答
0

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

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

于 2009-03-03T16:50:06.230 回答