VisualStudio2019远程调试Docker容器内应用
因为经常要将服务部署到公司内网测试环境进行测试,一旦出现bug除了查日志就只能让app端进行抓包,非常的麻烦,痛定思痛,研究了一下VS2019的远程调试功能,废话不多说,直接整。 首先你要确定你的代码发布为Debug模式,因为Release会优化IL中间码,导致你附加到进程调试时有时无法命中断点: 然后发布你的代码打包到服务器上构建镜像创建容器后,打开VS2019的附加到进程: 链接类型选择你部署…
因为经常要将服务部署到公司内网测试环境进行测试,一旦出现bug除了查日志就只能让app端进行抓包,非常的麻烦,痛定思痛,研究了一下VS2019的远程调试功能,废话不多说,直接整。 首先你要确定你的代码发布为Debug模式,因为Release会优化IL中间码,导致你附加到进程调试时有时无法命中断点: 然后发布你的代码打包到服务器上构建镜像创建容器后,打开VS2019的附加到进程: 链接类型选择你部署…
使用github的朋友经常会遇到这么个问题,由于仓库是public的,所以存储在配置文件内的数据库字符串等用户机密密钥会随代码push到代码仓库后被公开,即使你立即发现后删除配置文件,其他用户仍能从你的提交记录中查询到该机密数据,这肯定是我们所不想看到的,因此,微软为.NetCore的Appsettings文件提供了一种开发环境下的机密数据管理方案。 机密管理器工具的工作原理 机密管理器工具隐藏实…
最近犯了个低级错误,在编写异步方法时,于内部做了throw new Exception()操作,导致上层线程直接死锁。 一般规范来讲,在await方法内部,不要主动抛出异常,这样做会让子线程意外终止,代码无法继续运行。 如果想要捕获一个async方法的异常,可以用如下方式: private async Task<bool> DoSomething() { throw new Exceptio…
今天部署一个新的后台项目,是从老的项目中分离出来的,项目版本是.NetFramework 4.5.1的,因为和新的.NetCore接口共用一套实体类,而.NetStandard不支持.NetFramework4.5.1,无奈之下只好将老项目的版本升级为.NetFramework4.7.2,在构建部署到生产服务器之后出现了问题,报错如下: 网上查了下资料,清一色推荐在服务器上安装4.7.2版本,一开…
首先先下载ASP.NET Core 模块,这个东西是为了让IIS可以跑.NetCore项目用的,安装完成后重启IIS。 然后打开你的项目,双击项目的.csproj文件,于PropertyGroup节点添加HostingModel,值为OutOfProcess,这里是为了让项目发布时,自动生成的web.config文件里指定为无托管模式。 <PropertyGroup> <Targ…
今天写业务踩了个小坑,来记录一下。 需求是导入Excel表格到数据库,内容是一个日期的集合,导入时在cell内容转换为C#的Datetime类型时发生异常,查了下解决方法,废话不多说,上代码: for(int rowIndex = 0;rowIndex <= sheet.LastRowNum;rowIndex ++) { var row = sheet.GetRow(rowIndex); i…