gpt4 book ai didi

ASP.NET连接字符串部署最佳实践

转载 作者:行者123 更新时间:2023-12-04 20:23:17 25 4
gpt4 key购买 nike

我已经收集了(希望是有用的)关于完成本文主题的研究方法以及我所遇到的问题的摘要(希望是有用的)。请告诉我是否找到了您更喜欢的其他方式,尤其是当它们解决了我提到的方法所没有的问题时。

  • 将连接字符串保留在web.config中,并使用XDT/msdeploy转换根据我的事件构建配置(例如,web.PublicTest.config文件)将其替换为设置。我的问题是,我将一些服务器特定的设置合并并掩埋到一个具有许多配置元素的全局相同的文件中。此外,我无法在多个对等层应用程序之间共享连接字符串定义。
  • 为web.config中的连接字符串指定configSource =“DeveloperLocalConnectionStrings.config”值,然后XDT将此值转换为指向我的代码库中多个特定于环境的文件之一。我的问题是我将所有环境的密码发送到所有目的地(当然,除了SVN),还有未使用的配置节位于服务器上,以备不时之需。
  • machine.config文件而不是web.config中的特定连接字符串。问题:到底谁希望在machine.config中找到连接字符串,结果出现意外名称冲突的可能性就很高。
  • 指定一个configSource =“LocalConnectionStrings.config”,不转换该值,并编辑项目xml以排除连接字符串config的部署。 http://msdn.microsoft.com/en-us/library/ee942158.aspx#can_i_exclude_specific_files_or_folders_from_deployment-这是我找到的解决我对专有(非分布式)Web应用程序需求的最佳解决方案,但是我很奇怪另一位团队成员有一天会来并出于某种原因复制生产站点进行测试,所以! UAT期间正在修改生产数据库。 (更新:我发现在这种情况下我不能使用一键式发布,只能使用带有-skip参数的msdeploy命令行。排除上述文件与将其设置为“无”编译操作而不是“内容”,并导致程序包将其从部署目标中删除。)
  • 如果尚未设置连接字符串,则将其打包,以提示输入连接字符串(我尚不知道该怎么做,但我知道这是可能的)。这将与上面的#4具有相似的结果。
  • 指定configSource =“..\ConnectionStrings.config”。这将非常适合我的需求,因为我可以在选择的应用程序之间共享配置,并且在我的应用程序目录中没有任何机器特定的内容。不幸的是,该属性中不允许使用父路径(就像它们用于'appSettings file =“”-还要注意,您可以在configSource =引用中轻松使用file =)。

  • p.s.其中一些解决方案在这里讨论: ASP.Net configuration file -> Connection strings for multiple developers and deployment servers

    最佳答案

    使用SQL Server时,还可以使用Integrated Security/SSPI并将WebServer计算机登录名添加到Sql Server。

    这样,您就不必在web.config中公开任何内容,并且可以像其他任何DB用户一样向该登录名授予角色。

    尽管您必须了解要使用的含义和安全注意事项,但是因为任何作为THAT机器执行的恶意代码都可以访问Sql Server。

    带着敬意
    奥莱

    关于ASP.NET连接字符串部署最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940312/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com