2011-06-21 60 views
2

请在此告诉我。WCF和Web应用程序在同一台服务器上

我在同一台服务器上同时具有Wcf服务(将负责高度安全的数据操作)和Web App,我将通过Internet访问此Web应用程序(它将使用此Wcf服务进行数据操作)。

1)这是一个很好的做法,都在同一台服务器。

2)什么WCF安全我必须选择运输或消息安全。

3)我有什么类型的架构使用(例如:3层或N-层)

我使用VS2010和.NET Framework 4.0和SQL Server 2008进行开发。

在此先感谢。

+0

的简洁是有一个原因是WCF是唯一一个?您需要考虑是否为了安全目的而分离业务逻辑(等等)。如果是安全或分离,_i_(个人)将它们保留在单独的服务器上,并将逻辑层锁定在除端点以外的任何访问权限中,因此如果(由于任何原因)Web前端遭到破坏,则无法达到WCF服务。 –

+0

谢谢布拉德。主要是出于安全目的,我们决定使用WCF。除了使用WCF还有其他方法吗? – user757207

+0

我并没有质疑WCF的使用,而是让你思考它为什么被分解(而不是在代码隐藏中)。再次,我通常保持层级分离,但我也处于企业环境中,并拥有多台服务器。另外,当涉及到公开功能时,我们只能通过防火墙打开WCF端口,而不是Web服务器前端和WCF端口。 (或者我们可以在其他地方托管Web前端,并且只需将它内部连接到一个端口)。 –

回答

2

这不是一个简单的问题来回答如果在应用程序的同一台服务器上安装WCF服务是一种好的做法。如果你想尽可能地屏蔽服务,你当然可以把它放在防火墙后面的一个单独的服务器上,只允许Web应用程序访问它。但是,创建服务听起来有点多余。它是否提供客户应该可以访问的方法? - 确定部署方案时,您还必须衡量安全性和可伸缩性的成本。更多的服务器意味着购买服务器和维护服务器的成本更高。

我认为你可以同时使用传输和消息安全,但是使用消息安全性,你可以在http上传输消息,这意味着比https更少的流量。

关于应用程序中的层数,这也取决于应用程序的性质。你甚至可以考虑CQRS或类似的体系结构。但是,如果你有适当的图层分隔,并且它们只依赖于下一层,你可以随时插入新图层。说到:如果你打算使用WCF服务作为内部的DAL,你也可以优先考虑创建一个简单的DAL和一个适当的接口,稍后可以将它改为WCF服务。

创建一个Web服务有很多很好的理由,它可以让你稍后在更多的服务器上扩展,所以我绝对不会推荐反对Web服务,只是说它可能会矫枉过正或引入更大的在应用程序中攻击表面。

性能明智,你可能会通过使用tcp绑定而不是http获得提升,但如果涉及某个非wcf客户端,则在http上连接外部应用程序会更容易。

也许这帖子包含的问题多于答案,但你是谁可以决定给你的描述:)

相关问题