C#遍历文件夹下所有文件最短代码

以前用C#遍历文件夹下所有的文件,都是写一个递归来做,最近发现DotNet 4.0里直接有了递归遍历文件夹访问所有文件的API,返回的是IEnumerable<string>,直接用一个foreach就可以遍历了。下面是代码示例

Continue reading C#遍历文件夹下所有文件最短代码

ASP.NET Core读取appsettings.json的配置

这边博客记录迁移到ASP.NET Core过程中读取配置文件的变化。在老版本的ASP.NET里,项目的全局配置一般都存在web.config里的appSettings里,只需要用ConfigurationManager.AppSettings[“Foo”]就可以把名为Foo的变量取出来。在ASP.NET Core里,访问配置文件的方式也有了很大变化。但是ASP.NET Core里web.config已经被appsettings.json替换,加上ASP.NET Core里大量用了依赖注入(Dependency Injection),这使得读取配置信息也和之前不一样,新的框架下取配置更加灵活和易于扩展。这里用一个小例子演示如何通过Options.ConfigurationExtensions这个来取得配置。

Continue reading ASP.NET Core读取appsettings.json的配置

Azure Service Fabric学习资料整理

最新开始学习Azure Service Fabric,基本上就是微软下一代PaaS平台了,这里对学习资料做了一些整理

官方网站

开源项目

其他

Azure IoT学习资料整理

这里记录Azure IoT的一些学习材料

教程和文档

开源项目

Nginx配置GoDaddy SSL证书步骤

这边文章记录在Nginx上配置SSL证书的过程,配置环境试用于Windows上的Nginx和GoDaddy买的SSL证书。

首先从这里下载OpenSSL tool,然后运行下面命令先生成一个key,装好后在命令行里运行

openssl genrsa -out www.mysite.com.key 2048

然后运行下面命令生成CSR文件

openssl req -new -key www.mysite.com.key -out www.mysite.com.csr

然后去GoDaddy提交CSR并且下载生成的证书,现在证书时,服务器类型选择Apache

image

这里要注意,下载回来的是2个crt文件,需要运行下面命令把他们合并成一个

type www.mysite.com.crt gd_bundle.crt > mysite_combined.crt

如果是linux下,则运行

cat www.mysite.com.crt gd_bundle.crt > mysite_combined.crt

现在就可以去修改nginx的配置文件了

ssl_certificate指向crt文件位置,ssl_certificate_key指向key文件位置,nginx SSL就可以工作了。

GoDaddy上撤销证书的一个大坑

在Godaddy上给一个域名配了个SSL证书,买了一年,今天需要重新生成一下证书,开始试了一下ReKey,结果openssl报了No certificate matches private key的错误。没有仔细研究就直接revoke的证书,revoke完后发现证书直接不见了。联系了一下客服,告知说revoke就等于取消,就无法恢复,要继续使用只能重新购买。由于所有的SSL产品都是按年付的,所以没有用完的月份,也无法退款。这等于说花了一年的钱,用了2个月后,由于revoke证书,导致剩下10个月无法继续使用,只能重新在买一年了。

客服的态度也很不友好,一副你自己做错了,我也没有办法的态度,开始以为是个外包的客服,后来问了一下邮箱,发现貌似是个正式员工:cjohnston@godaddy.com。所谓店大欺客,以后买域名和证书可能要考虑其他的选项了。

这里总结一下让人不爽的几个地方

  1. Revoke证书会导致当前的年付产品直接取消,这么重要的信息居然在revoke的时候不提示。
  2. SSL是年付产品,所以被取消后,没用完的部分是不返钱的。
  3. 客服拽拽的,一副爱用不用的样子。

最终的结果是,为了继续用SSL证书,只好又付了1年的钱。

脚本添加Windows防火墙的入站规则

PowerShell命令New-NetFirewallRule可以很方便的快速添加入站规则到本地的防火墙里,下面是一些常见的例子

通过脚本设置当前机器防火墙,允许端口80的入站规则。

Write-Host -ForegroundColor Cyan "Creating new inbound rule Http"
New-NetFirewallRule -DisplayName "Http" -Direction Inbound -LocalPort 80 -RemotePort Any -Protocol TCP -Enabled True

通过脚本设置当前机器防火墙,允许端口80的出站规则。

Write-Host -ForegroundColor Cyan "Creating new outbound rule Http"
New-NetFirewallRule -DisplayName "Http" -Direction Outbound -LocalPort 80 -RemotePort Any -Protocol TCP -Enabled True

通过脚本设置当前机器防火墙,允许ICMPv4协议入站规则。

Write-Host -ForegroundColor Cyan "Creating new rule Allow Ping"
New-NetFirewallRule -DisplayName "Allow Ping" -Description "Allow ping" -Protocol ICMPv4 -IcmpType 8 -Enabled True -Profile Any -Action Allow