【问题标题】:Can someone explain the ASP.Net Technicalities for Physical Tier applications有人可以解释物理层应用程序的 ASP.Net 技术吗
【发布时间】:2010-11-17 17:14:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: asp.net architecture


    【解决方案1】:

    如果您希望这些层位于物理上独立的服务器上,那么您必须决定这些层应该如何通信。为此,您有很多选择:Web 服务、Windows Communication Foundation、.Net Remoting...

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

    【讨论】:

    • 有道理,但我不明白如果您调用应用程序服务器上的 PageA.aspx,它如何冒泡到 Web 服务器,因为这是浏览器正在寻找的公共方面.
    • 没有“冒泡”。您在应用程序服务器上的网站必须对安全 Web 服务进行显式 Web 服务调用。分层是有代价的:您必须编写更多代码。
    • 如果您向 www.domain.com/pagea.aspx 发出请求,它将转到 Web 服务器,但是我的文件在应用程序服务器上,所以我不确定它是如何工作的
    【解决方案2】:

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

    服务器(小猪)- 数据库、sql server 2005、防火墙阻止连接到 tigger

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

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

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

    【讨论】:

      【解决方案3】:

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

      典型的层数是

      客户层

      • 用户界面
      • 商务
      • 代理

      服务器层

      • 立面
      • 商务
      • 数据访问

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

      【讨论】:

        【解决方案4】:

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

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

        希望对您有所帮助。

        编辑继续解释:

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

        【讨论】:

        • 如果 PageA.aspx 请求完全在应用程序服务器上,它将如何呈现?
        猜你喜欢
        • 2011-10-25
        • 2015-10-06
        • 2010-09-07
        • 1970-01-01
        • 2011-07-11
        • 2013-06-18
        • 1970-01-01
        • 2019-04-20
        • 1970-01-01
        相关资源
        最近更新 更多