有人可以解释物理层应用程序的ASP.Net技术

时间:2009-08-07 14:27:54

标签: asp.net architecture

我正在了解n层应用程序。我理解代码层的分离,例如/ UI,BL(业务逻辑),DL(数据层)。

在ASP.Net应用程序中,您只需引用正在执行BL和DL的C#项目,一切顺利。

我不明白你将如何在单独的服务器上实现这一点?你有bin文件夹中的BL和DL的DLL,但web.config文件中的设置告诉它去哪里进行通信,或者你是否在单独的服务器上运行实际的BL和DL,然后从用户界面是通过网络服务制作的吗?

目前我有一个标准的ASP.Net webforms应用程序需要将安全端分离到Web服务器和应用程序服务器上的主应用程序,但是我不认为这是可能的。

4 个答案:

答案 0 :(得分:1)

当我们吐入物理层时,我们在层之间使用WCF。您最终会在应用程序中获得更多层,因此如果您不需要它,请不要使用它。

典型的图层来自

客户层>

  • UI
  • 商业
  • 代理

服务器层

  • 门面
  • 商业
  • 数据访问

如果使用ORM,则服务器层可以实现为单个层。

答案 1 :(得分:0)

如果没有群集,这是不可能直接实现的,即使这需要在两台服务器上运行的应用程序的精确副本。

如果要将安全层作为单独的服务器运行,请使用Web服务创建它,并向该服务发出Web请求,并返回(加密或其他)响应。

希望有所帮助。

编辑继续说明:

在您的情况下,我会让我的安全应用程序在服务器上运行,该服务器将对来自特定URL或域/子域的请求进行身份验证,加密和响应。然后我的主应用程序可以在另一台服务器上运行,并且验证请求等可以在辅助服务器上。但是,ASP.NET身份验证使用计算机级别密钥为身份验证令牌创建唯一的salt。因此,为了在多台机器之间共享auth令牌,机器密钥在machine.config中必须相同。

答案 2 :(得分:0)

单独的服务器需要使用某种形式的Web服务。在这里工作:

服务器(仔猪) - 数据库,sql server 2005,防火墙阻止连接到跳跳器

服务器(eeyore) - 网络服务 - 连接到仔猪

服务器(tigger) - asp.net服务器 - 连接到eeyore,防火墙阻止连接到piglet

业务逻辑将位于数据访问层,表示层或两者使用的dll程序集中,并与它们一起部署。

答案 3 :(得分:0)

如果您希望图层位于物理上独立的服务器上,则必须确定图层应如何通信。您有很多选择:Web服务,Windows Communication Foundation,.Net Remoting ......

  • Application Server - 不要直接调用安全逻辑,而是调用Web服务器上的安全Web服务。
  • Web服务器 - 托管安全Web服务。这里的webservice执行实际的业务逻辑,可以调用数据层。