我们需要为部署在 DMZ 中的 Web 应用程序确定一种快速方法,以便与位于 protected 网络中的 SQL 服务器进行通信。只有端口 80 是开放和可用的,并且不允许直接的 SQL 流量通过防火墙。
所以采用下面的简单系统。
网页 (default.aspx) 调用驻留在程序集 (Simple.DLL) 中的 (string GetData())。 GetData() 使用 ADO.NET 打开连接、执行 SQL 调用、检索数据并将数据返回给调用者。
但是,由于只有 80 端口可用并且不允许 SQL 流量,我们可以做些什么来实现我们的目标?
我相信 .NET 远程处理解决方案会起作用,而且我听说过一种体系结构,其中远程处理层代理从 DMZ 中的 Simple.DLL 到另一个在 protected 端运行的 Simple.DLL 的调用。远程处理层处理两个 DLL 之间的通信。
有人可以阐明 WCF/远程处理如何帮助我们以及如何开始解决方案吗?
最佳答案
我会简单地托管一个 WCF 代理服务。 (http://firewallhostaddress:80/MyDataz)。
在 GetData 方法中,您将使用 WCF 代理从服务中获取数据。网络内的 WCF 服务将与 SQL 服务器对话。
我错过了什么吗?也许以后我可以举个例子。
WCF 示例:http://msdn.microsoft.com/en-us/library/ms751514.aspx
我还推荐 Juval Lowy 编写的 Programming WCF Services 一书。 http://www.amazon.com/Programming-WCF-Services-Juval-Lowy/dp/0596526997
关于.net - 跨 DMZ 的代理调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563210/