【问题标题】:Strategies for providing locally (intranet) hosted MVC ASP.NET website提供本地(内网)托管的 MVC ASP.NET 网站的策略
【发布时间】:2017-03-28 04:05:21
【问题描述】:

平台:ASP.NET 4.5、MVC 4、C#

我目前正在设计一个可在公共领域使用的网站。但是,我的目标市场中有相当一部分人不愿意将一些信息放在公共网站上,即使它是 https 等。

我想要做的是允许企业用户使用我的网站,其中一种方法是允许他们在他们的 Intranet 上托管我的网站。当然,通常的缺点是他们的网站更新速度不如公众网站那么快,而且在支持方面我也很头疼。

我的问题是

  1. 有哪些策略可以让“企业友好型”部署变得轻松无忧?

  2. 有没有办法让网站公开,只使用 Intranet 中的数据库(看不到如何......但我不是技术专家)

  3. 如果我别无选择,只能在本地托管 - 那么将我的开发/支持开销降至最低的最佳方法是什么?

我希望模组不要锁定这个。我要求针对一个非常现实的问题提供具体的方法和技术方法。

谢谢,

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 deployment


    【解决方案1】:

    对于#1,这个问题有很多方面。一些想法可能会帮助您思考:

    1. 部署您的应用:简化应用版本之间的部署和升级。尝试将其作为单个操作进行,而不是手动手动升级不同的部分。正如 Darin Dimitrov 所提到的,您可以研究像 Web 部署包这样的技术,尤其是在 Visual Studio 2012 中,它将具有增量数据库发布(在 VS2010 中,数据库是非增量的,因此没有真正的“更新”故事)。降低部署成本,以便他们能够负担得起更频繁的升级(不是您的产品成本,而是为保持系统更新和运行而获得报酬的人的开销)。
    2. 考虑在 Internet 和 Intranet 上运行的区别:例如,Internet 上的身份验证通常使用基于表单的身份验证。在 Intranet 上,您可能需要考虑支持 Windows 身份验证,以便为企业用户提供无缝登录体验。这应该会影响您的设计,以允许在您的部署之间进行模块化身份验证。
    3. 企业采用新技术的速度可能比您想要的要慢:您使用的是最新最好的 (ASP.NET 4.5/MVC4)。有些公司现在或几年后可能还没有准备好部署它。考虑一下您是否可以使用较旧的、成熟的技术,例如 .NET 4 - 已经出现了几年,它已经在一定程度上得到了验证并被采用。

    对于您的第二个问题,这取决于他们的 IT 愿意接受什么。许多公司站点在安全的 LAN 中都有数据库,但可以从公共 Internet 访问 Web 服务器。这当然是一个很好理解的网络设计,但是根据您的应用程序中涉及的资产,您的客户可能会也可能不会同意它。这是一个商业决策。

    对于#3,答案对于任何长期软件项目都是通用的。如果您想尽量减少麻烦,它必须是高质量和可维护的。

    • 如果您只支持最后的 N 个版本,请明确说明。避免支持您在过去很久就修复的代码。考虑提供额外的支持或负担得起的升级,以使您的客户使用更新的(并且希望是更好的)版本。
    • 请记住版本之间需要升级哪些组件。您的网络应用程序(显然),还有您的数据库架构和您正在使用的任何依赖项或库。这与#1 的考虑基本相同。确保您为升级回滚制定了良好的计划。
    • 最重要的是,测试,测试,测试。进行功能回归测试和安装/升级测试,并尝试尽可能多的可能性。

    【讨论】:

      【解决方案2】:

      只回答上面的 1)。 我会推荐一个持续集成工具。我们使用 TeamCity 并通过单击按钮将 mvc3 和 mvc4 应用程序部署到我们的公共和私有托管站点。之前我们使用巡航控制,但现在我们对 TeamCity 更加满意。阅读它们。可能会引导您走向正确的方向。

      【讨论】:

      • Vishal,您如何确保企业(Intranet 托管)站点从您的持续集成中受益?这是否意味着您可以访问他们的网络 - 在大多数情况下这不太可能......那么您如何“升级”他们的网站?
      • 抱歉,这听起来更像是一个安全问题,而不是部署问题。那时我的建议可能无济于事。但是让我感到困惑的是,在无法访问他们的网络的情况下升级某人的网站到底是什么意思。那没有意义。您如何管理任何网站而不以某种方式访问​​他们的内容?
      【解决方案3】:

      您可以查看 Visual Studio 的 Web Deployment Packages。它们允许您准备一个可以直接安装在您客户的 Web 服务器上的软件包。

      【讨论】:

        猜你喜欢
        • 2010-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-20
        • 2023-03-27
        • 1970-01-01
        • 2014-11-07
        相关资源
        最近更新 更多