在ASP.NET页面IIS7.5环境下调用MoonAPNS发送iOS全局推送失败的原因

问题:
在asp.net页面中尝试使用MoonAPNS库发送全局推送,碰到异常
相关错误信息片段如下,
System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob

注:我的开发环境为Windows 7 Enterprise 32 bits, IIS 7.5, asp.net 4.0, vs2010

分析
我首先就怀疑是不是我的证书和密码不正确,不过之前在mac上已经使用openssl验证过,应该不会有问题。
不错还是处于谨慎的态度,我在MoonAPNS的样例控制台项目中测试了我的证书及密码的正确性,根据结果我再次确认我的证书和密码是没有问题的。

由此我开始怀疑是不是iis造成的,赶紧放google去搜,原来还真是iis配置问题。请参考老外在stackoverflow的注解,
Turns out there's a setting in the IIS Application Pool configuration (Application Pools > Advanced Settings) to load the user profile for the application pool identity user. When set to false, the key containers aren't accessible.

修复步骤:
打开iis管理器,找到我使用的application pool。 将Advanced Settings->Load User Profile选项设置为true

结果:
成功调用MoonAPNS发送全局推送通知

你可能感兴趣的:(在ASP.NET页面IIS7.5环境下调用MoonAPNS发送iOS全局推送失败的原因)