【问题标题】:Change code in production without deployment - ASP.NET无需部署即可更改生产中的代码 - ASP.NET
【发布时间】:2010-12-02 07:04:20
【问题描述】:

我正在使用 asp.net

在我的 .cs 页面中,我正在为变量 [count = 12] 设置一个值。 count 是一个 var,我已经在 aspx 页面上声明了它。

现在我必须更改 count = 13 的值。这应该写在 Page_Load() 的 !IspostBack 事件中。但问题是这是一个非常小的变化,我无法为这个小变化重新部署我的网站。

他们有什么方法可以修改生产站点中的代码而不重新部署它吗?

【问题讨论】:

  • 在代码中硬编码值会带来已知风险:当您需要更改它们时,这意味着您必须重新编译代码并将更新的 DLL 文件投入生产。按照 Nasser 的建议进行操作,将值放入 web.config 文件中,将新版本发布到生产环境一次,以后的任何更改都不再需要部署,只需更改配置文件即可。

标签: asp.net asp.net-2.0


【解决方案1】:

在这些情况下,最好的方法是在 Web.Config (AppSetting) 中定义此变量,然后读取该值。因此,即将发生的更改不需要部署。但是第一次你需要编写代码并再次发布。


您也可以使用另一个构建器来构建您想要的唯一页面,但是一次这样的事情的时间成本比再次发布项目要多。

【讨论】:

    【解决方案2】:

    对于服务器端代码的更改,您无需重新部署完整的应用程序。只需用新的替换现有的项目输出库 (dll)。它应该在您的应用程序的“bin”文件夹中。

    此外,如果您经常需要更改变量的值,请考虑将其存储在 web.config 文件的 AppSettings 部分。

    【讨论】:

    • 如果您使用的是 WebApplication 项目,那么它很可能应该是“NameOfYourProject.dll”。如果您使用的是“WebSite”项目,那么它将是“NameOfTheAspxPage.aspx..compiled。其他人可以验证它吗?我不是 100% 确定。如果你查看“bin”文件夹,你会能猜到。
    • 我有这些 dll。App_Code.dll、App_Web_brefkxyq.dll、App_Web_itp2ewo3.dll、DAL.dll、System.Web.dll、App_global.asax.dll、BLL.dll、Common.dll。和类似的dll。没有带有项目名称的dll。我的项目名称是 ETDL。请建议
    • 您是否有任何名为“App_Web_NameOfTheAspxPage.aspx..dll 的 dll ?(其中 NameOfTheAspxPage 是您的 Aspx 页面)
    • 这些是与 App_Web 名称 App_Web_zgerbgvc.dll、App_Web_wjisf0bj.dll、App_Web_rkmp0gs7.dll、App_Web_itp2ewo3.dll、App_Web_godoiraw.dll 和 App_Web_brefkxyq.dll 相关的 dll。
    • 基本上,据我了解,网站项目中的每个aspx页面,都会编译成不同的dll库。因此,我试图查找您是否能够找到该 dll。但这里的情况似乎并非如此。由于这是您的生产环境,我不会建议任何风险。最好的办法是发布一个新版本。或者你可以等待其他人的回应。
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    相关资源
    最近更新 更多