2009-08-07 35 views
1

我正在圍繞n層應用程序開始工作。我理解代碼層的分離,例如/ UI,BL(業務邏輯),DL(數據層)。有人可以解釋物理層應用程序的ASP.Net Technicalities

在你只需引用是做BL和DL的C#項目,一切都很好一個ASP.Net應用程序。

我不明白的是你將如何實現這個在單獨的服務器?你有沒有在bin文件夾中的BL和DL的DLL,而是在web.config文件中告訴它去哪裏進行通信的設置,或者你有沒有在單獨的服務器上運行實際的BL和DL,然後從用戶界面是通過網絡服務?

目前,我有一個標準的ASP.Net web表單應用程序,需要單獨的安全側到網絡服務器和應用服務器上的主要的應用程序,但我不認爲這就是可能的。

回答

0

這是不能直接無羣集,甚至需要在兩臺服務器上運行的應用程序的精確副本。

如果你想作爲一個單獨的服務器上運行您的安全層,使用Web服務創建,使Web請求到該服務,並返回(加密或其他方式)的響應。

希望有所幫助。爲繼續解釋

編輯:

在你的情況,我不得不將身份驗證,加密,以及從特定的URL或域名/子域名向它提出的請求作出響應的服務器上運行我的安全應用。然後,我的主應用程序可以存在於另一臺服務器上,並且可以在輔助服務器上進行身份驗證等請求。但是,ASP.NET身份驗證使用計算機級密鑰爲身份驗證令牌創建唯一的salt。因此,爲了在多臺機器之間共享授權令牌,機器密鑰在machine.config中必須相同。

+0

如果PageA.aspx的請求完全位於Application Server上,它將如何呈現? – Jon 2009-08-07 14:37:54

1

當我們進入物理層時,我們在層之間使用WCF。你實際上最終會在你的應用程序中獲得更多的圖層,所以如果你不需要它,就不要使用它。

典型層將通過

客戶層

  • UI
  • 業務
  • 代理

服務器層

  • 門面
  • 業務
  • 數據訪問

服務器層可以爲單層,如果你使用ORM實現。

0

單獨的服務器將需要某種形式的Web服務的使用。在這裏工作:

服務器(小豬) - 數據庫,SQL Server 2005中,防火牆阻止連接跳跳虎

服務器(咿呦) - 網絡服務 - 連接到仔豬

服務器(跳跳虎) - ASP。網絡服務器 - 連接到eeyore,防火牆阻止與仔豬的連接

業務邏輯將位於由數據訪問層,表示層或二者使用的dll程序集中,並與其一起部署。

0

如果你想要物理上獨立的服務器上的圖層,那麼你必須決定圖層應該如何通信。你有很多這樣做的選擇:Web服務,Windows通訊基礎,.NET遠程...

  • 應用服務器 - 而不是直接調用的安全邏輯,調用Web服務器上的安全web服務。
  • Web服務器 - 承載安全Web服務。這裏的webservice執行實際的業務邏輯並可以調用數據層。
+0

有道理,但我不明白如果您打電話給Application Server上的PageA.aspx如何將它吹到Web服務器,因爲這是瀏覽器正在查找的事物的公共端。 – Jon 2009-08-07 14:51:55

+0

沒有「冒泡」。您的應用程序服務器上的網站必須對安全Web服務進行明確的Web服務調用。分層的代價是:你必須編寫更多的代碼。 – David 2009-08-07 15:28:15

+0

如果您向www.domain.com/pagea.aspx發送了請求,它會轉到Web服務器,但是我的文件位於應用程序服務器上,所以我不確定它是如何工作的 – Jon 2009-08-07 18:12:58