【问题标题】:Are virtual servers quirky with Windows Server 2003, IIS 6, ASP.NET MVC?虚拟服务器对 Windows Server 2003、IIS 6、ASP.NET MVC 来说是不是很奇怪?
【发布时间】:2010-01-24 01:10:36
【问题描述】:

几个月来,我一直在使用 ASP.NET MVC 和 C#、SQL Server 2005、ADO.NET Entity Framework、JQuery 和一些 ESRI Web API 和地理数据库来构建一个客户站点。测试服务器在 Windows Server 2003 上运行 IIS6。在这段时间里,我看到了一些导致大量返工的奇怪事情:

  1. 客户端服务器上的 JavaScript 文件将无法识别脚本或 URL 的正常相对路径:我必须将其初始化为 在视图中,或者在母版页的 标记中捕获应用程序路径:
// 声明一个变量以传递给似乎没有的 jQuery 函数 // 在 IIS6 中处理 MVC 上顶级页面下方的 URL。 var _applicationPath = new String(''); // 在 jQuery 文档加载事件后重置变量以确保 // 每个 jQuery 库和插件都会看到该值。 jQuery(文档).ready(函数() { _applicationPath = new String(''); });
  1. 我已经测试了将新数据发布到数据库以及编辑数据的表单和函数。在两台开发机器和服务器上,我能够证明一切正常。然而,每次他们测试时,客户都会回来说这个字段或那个字段没有保存,或者“显示很有趣”。

此时,用户的帐户仅用于登录网络。我的实体框架代码位于数据 DLL 中,并通过单个应用程序用户登录与数据库一起使用。因此,权限或安全性应该没有任何问题。

当有人登录时,代码不会改变,视图不会改变,数据库甚至不知道谁登录了网站。所以我不得不一次又一次地回到代码中,并尝试更加防御性地编程。但我不久前就达到了无事可做的地步。

昨天客户告诉我,我在他们的网络上使用的服务器是虚拟服务器。这是在学术环境中,服务器在另一个部门控制下的另一个建筑物中。

当第一次在这个测试服务器上工作时,我能够创建一个 ASP.NET 站点,但是大多数数据控件阻止了页面加载,并且 ASP.NET 中的其他组件无法在开发系统上运行。这就是我切换到 ASP.NET MVC 的原因。

我们已经转移到我之前没有使用过虚拟服务器的物理测试服务器。在使用 ASP.NET 或其他任何东西使用虚拟服务器时,有没有人有过任何奇怪的经历?

【问题讨论】:

    标签: jquery asp.net-mvc iis-6 windows-server-2003 virtualization


    【解决方案1】:

    我不相信 虚拟服务器托管市场上的许多可用虚拟服务器(尤其是资源太有限且承诺提供“灵活”额外资源的低成本虚拟服务器)来托管公共网站,因为资源的灵活分配通常不适用于高峰流量,有时会导致崩溃和不稳定。您所描述的可能来自配备了有限资源的虚拟服务器,或者在不稳定或负担过重的环境中运行。不过,这也可能取决于机器的设置方式以及 Web 服务器的配置方式。 (我会说,1. 中的路径问题绝对是配置问题。)

    你可以试着让运行这个东西的人增加一段时间的资源(处理器时间、RAM、网络流量),看看它是否会变得更好。如果是这样,您将必须查看是否可以将增加永久化,或者使用专用服务器。

    【讨论】:

    • 感谢您的回复。我们正在迁移到专用服务器,但 IT 部门现在没有响应(可能是由于工作量和人员减少),但客户要求我对此进行一些研究。你提到的配置让我有了继续前进的动力。
    • 对不起,Pekka,由于对虚拟化环境的主观评论,不得不对此投反对票。配置和调整不当的“物理”服务器与配置不当的虚拟环境一样可能会令人头疼。我在一家网络托管公司工作,我们在基于 Xen 的 7 节点平台上运行约 60-70 个虚拟机,我们遇到的问题比在物理服务器上少得多。我们还发现,与在物理服务器上运行相比,可靠性和灵活性有所提高。如果操作正确,那么应该没有问题。
    • @Kev,我同意我应该更清楚地说明所描述的问题不是虚拟化的固有特征;尽管如此,我已经与各种提供商建立了许多(低成本)虚拟服务器,它们往往反应不佳,尤其是对峰值负载,我怀疑是因为灵活的资源分配(保证 RAM X 数量 动态分配的 RAM y量),低成本供应商使用。无论如何,感谢您在投票中添加评论,我认为我们现在已经涵盖了双方:) 总的来说,我认为虚拟化是一项伟大的技术进步。
    • 我稍微编辑了我的答案,以更强烈地强调这不是虚拟化的普遍问题,而是当今许多提供商在虚拟服务器中提供的问题。
    猜你喜欢
    • 2013-11-29
    • 1970-01-01
    • 2015-02-15
    • 2011-06-06
    • 2017-11-16
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2011-09-01
    相关资源
    最近更新 更多