幾個月來,我一直在使用C#,SQL Server 2005,ADO.NET實體框架,JQuery和一些ESRI Web API和地理數據庫構建使用ASP.NET MVC構建Web站點的客戶站點。測試服務器運行IIS6 Windows Server 2003上在這段時間我已經看到了已經造成了大量的返工一些奇怪的事情:虛擬服務器是否與Windows Server 2003,IIS 6,ASP.NET MVC有區別?
- 客戶端服務器上的JavaScript文件將無法識別到腳本正常的相對路徑或URL:而不是用「/Reports.mvc/GridData」的URL建立的jqGrid我不得不將其初始化爲<%= RESOLVEURL(「〜/ Reports.mvc /的GridData」)%>在視圖中,或者捕獲在主頁的<頭>標籤應用程序的路徑:
// Declare a variable to pass to jQuery functions that don't seem to // handle URLs below the top-level pages on MVC in IIS6. var _applicationPath = new String(''); // Reset the variable after jQuery document loaded event to make sure // every jQuery library and plugin sees the value. jQuery(document).ready(function() { _applicationPath = new String(''); });
- 我測試了將新數據發佈到數據庫以及編輯數據的窗體和函數。在兩臺開發機器和服務器上,我能夠證明一切正常。然而,每次他們測試時,客戶都回來說這個領域或那個領域沒有保存,或者「顯得有趣」。
此時,用戶的帳戶僅用於登錄到網絡。我的實體框架代碼位於數據DLL中,並通過單個應用程序用戶登錄與數據庫一起工作。所以不應該有任何權限或安全問題。
當有人登錄中的代碼不會改變,觀點不改變,而數據庫甚至不知道誰登錄到該網站。所以我不得不一次又一次地回到代碼中,只是嘗試更加防守的編程。但是我前一段時間已經意識到沒有什麼可以做的了。
昨天的顧客告訴我,我一直在使用他們的網絡上的服務器是虛擬服務器。這是在一個學術環境中,服務器在別的部門的控制下的另一個建築物中。
當第一個工作日該測試服務器上,我能夠創建一個ASP.NET網站,但大部分數據控件防止加載頁面,並在ASP.NET中的其他組件將不會在開發系統上運行。這就是爲什麼我切換到ASP.NET MVC。
我們已經移動到物理測試服務器我還沒有與虛擬服務器工作過。有沒有人有任何古怪的經驗與ASP.NET或任何其他事情的虛擬服務器工作?
感謝您的回覆。我們正在轉向專用服務器,但IT部門現在沒有反應(可能由於工作量和人員削減),但客戶要求我對此進行一些研究。你提到的配置給了我一些繼續。 – 2010-01-24 23:04:12
對不起Pekka,由於對虛擬化環境的主觀評論而不得不投票。配置不當並且調整好的'物理'服務器同樣可能會導致令人頭痛的配置虛擬環境。我在一家網絡託管公司工作,我們在一個7節點的Xen平臺上運行〜60-70個虛擬機,與物理服務器相比,我們的問題少得多。與在物理服務器上運行相比,我們還發現可靠性和靈活性有所提高。如果做得對,那就不應該有問題。 – Kev 2010-01-25 14:11:46
@Kev,我同意我應該更清楚地說明所描述的問題不是虛擬化的固有特性;儘管如此,我已經與各種提供商建立了許多(低成本)虛擬服務器,並且他們往往反應不佳,特別是對於峯值負載,我懷疑是因爲靈活的資源分配(保證RAM X數量<>動態分配RAM y低成本供應商使用的金額)。無論如何,感謝您爲投票添加評論,並且我認爲我們已經涵蓋雙方:)總的來說,我認爲虛擬化是一項巨大的技術進步。 – 2010-01-25 14:41:20