几个月来,我一直在使用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