美文网首页
asp.net core 项目开发环境配置相关问题

asp.net core 项目开发环境配置相关问题

作者: 白玉昭 | 来源:发表于2017-08-17 15:19 被阅读0次

    前言


    在真实的项目开发中,会有一些实际问题不经意之间困扰我们,尤其是那些你在翻书学习过程中不会重视的部分。比如,各环境(开发、测试、生产)下的配置文件使用;Cookie与Session中使用的加密方法(DataProtection)配置等等。下面将记录下我在项目中碰到一些问题。

    欢迎来访本人的github上项目:https://github.com/yzbai/HB.Framework,一个辅助最新asp.net core 2 的框架类库。

    各环境下配置


    使用UserSecrets  

    开发Development环境下配置,一般写在appsettings.json或者appsettings.Development.json中,这本来没什么问题,不过如果你的项目决定托管在github上时,就有问题了。你的配置文件中的敏感信息会一同公之于众。所以一般在appsettings.json中敏感信息都用随便什么字符代替。

    在项目上右键,Manage Secrets,然后在打开的secrets.json中写入真正的敏感信息,当然,这个信息你需要分享给你的项目组成员。

    设置ASPNETCORE_ENVIRONMENT


    开发环境下,在项目属性中,一般VS已经帮你设置好了ASPNETCORE_ENVIRONMENT为Development,不需要改动;

    测试环境下,可以在windows系统中设置环境变量(系统->高级系统设置->环境变量)ASPNETCORE_ENVIRONMENT为Staging。

    然后由项目发布人员,在测试服务器上上传appsettings.Staging.json,里面包含测试环境的配置,数据库等等。

    当然也可以在.gitignore文件中添加

    appsettings.Staging.json

    appsettings.Production.json

    然后项目发布人员,可以在visual studio 2017添加appsettings.Staging.json和appsetting.Production.json,这样不会被其他组员获取到。

    配置DataProtection


    DataProtection在单机开发阶段你不会体会到它的作用,但实际上它在Cookie等组件中起到重要的加密、解密作用,如果你不配置,那么当部署在多台IIS中时,会出现密钥不一致,解密失败无法验证的问题。多人开发测试时会出现困扰。应当配置如下:

    图1 Startup.cs中代码片段 图2 appsettings.json中代码片段

    其中加密用的密匙,使用保存在证书管理中的证书,CertificationThumbPrint是证书的“指纹”。而加密内容存储在Directory指定的文件夹中,这样避免原来存储在memory中后重启丢失。

    关于证书的生成与遇到的“坑”,在其他文章中叙述。

    结语


    先记录到这里。

    相关文章

      网友评论

          本文标题:asp.net core 项目开发环境配置相关问题

          本文链接:https://www.haomeiwen.com/subject/liagrxtx.html