【问题标题】:.Net and default settings.Net 和默认设置
【发布时间】:2009-04-24 13:40:04
【问题描述】:

如果我要从我的应用程序中的配置文件中读取连接字符串,并且我需要能够在应用程序从 dev 移动到 uat 再到 prod 时更改连接字符串,我应该使用设置文件,因为那里有连接字符串被编译到程序集中,我将从一个环境移动到另一个环境,从而使初始连接字符串过时?

这里的最佳做法是什么?

编辑:

我问的是笼统的,因为我既有 web 服务也有 smartclient 应用程序。

【问题讨论】:

  • 请澄清一下,这是网络应用还是桌面应用?
  • 没关系,配置文件名不同而已,差别就这些了。
  • 之所以问,是因为加密 web.configs 很容易。但部署的桌面应用程序和加密的应用程序配置不是

标签: .net configuration


【解决方案1】:

您想将App.config xml 文件用于桌面应用程序或web.config,如果您正在进行Web 开发。见“ConnectionStrings

【讨论】:

    【解决方案2】:

    我通常将连接字符串放入我从部署中排除的外部配置文件中: 在 web.config 中:

    <connectionStrings configSource="connections.config"></connectionStrings>
    

    connections.config:

    <?xml version="1.0"?>
    <connectionStrings>
        <add name="connectionName" connectionString="[connection string goes here]"/>
    </connectionStrings>
    

    [更新]这假设您正在构建一个网站;否则当然是“App.config”,而不是“web.config”

    【讨论】:

    • 这是一种有趣的方式。我在 machine.config 中的开发/生产框中的连接字符串已加密。对我来说效果很好;)我猜你为 IT 人员提供了一个模板来设置
    【解决方案3】:

    我们使用 .config 文件的连接字符串部分,字符串名称如下:

    AppDataInDev 和 AppData

    同样在 .config 文件中,我们在应用程序设置下有一个名为 InDev 的键

    在我们的数据层中,我们检查 InDev 的值。如果为 true,则使用 AppDataInDev 初始化数据层,否则使用 AppData。

    这使得管理向 prod 的过渡变得容易。发布到 prod 时,将 InDev 的值切换为 False,您就完成了。 (如果是 ASP.Net 应用程序,请同时将 CompilationDebug 切换为 False。)

    【讨论】:

    • 我了解 indev 开关如何促进部署,但这样您就可以在配置文件中拥有所有连接字符串。在代码中还有 dev/prod 开关听起来很危险,因为它很容易忘记翻转开关。我宁愿应用程序抛出异常,也不愿使用一些默认连接字符串。
    【解决方案4】:

    编译配置设置让我畏缩。

    但是,如果您担心您的配置会被坏人查看。

    加密:http://www.4guysfromrolla.com/articles/021506-1.aspx

    请记住,加密是基于机器密钥的,因此部署桌面应用程序的效果不会很好。

    【讨论】:

      【解决方案5】:

      您的键盘上似乎没有点('.')按钮。去商店买一个新的。

      我不确定我是否理解您的问题。使用应用程序可执行文件旁边的配置/设置文件。读取该文件以获取连接字符串。如果文件丢失,请使用默认 url 创建一个新的配置文件?

      【讨论】:

        猜你喜欢
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        相关资源
        最近更新 更多