我收到"提供给包的凭据无法识别"尝试从IIS中的站点发送推送通知时出现错误消息。
我有一个控制台应用程序在运行良好的服务器上运行完全相同的代码,就在它来自IIS时。
我在这里试过这个解决方案: PushSharp - The credentials supplied to the package were not recognized
我试过了:
"C:\Program Files (x86)\Windows Resource Kits\Tools\winhttpcertcfg" -i certificate.p12 -c LOCAL_MACHINE\My -a "NetworkService" -p <Password>
这是IIS运行的帐户。我也试过IIS_IUSRS,USERS,但我仍然得到凭据错误
我还检查过我只导出私钥而不是证书,我也尝试了两种方式
还有什么我可以尝试的吗?奇怪的是,只有IIS才能发送推送通知
答案 0 :(得分:0)
如果它在Console中工作但不在服务中,我有一个可能的罪魁祸首:交互式会话。
出于安全原因,服务since Vista在非交互式会话中运行。这意味着他们无法以任何其他方式制作屏幕截图,覆盖UAC或与用户桌面交互。
一些相当旧的代码也需要交互式会话。特别是(t)生锈的Office COM互操作要么知道要么正确,要么就是不能运行。
这可能与您的案件有关。
答案 1 :(得分:0)
我已经解决了这个问题。
我将网站运行的应用程序池的标识更改为我当前的用户(管理员)
为了确保我也为该用户运行了winhttpcert,并且在Cert文件属性安全设置中,我完全控制了同一个用户。
证书现在运作正常
答案 2 :(得分:0)
在部署到AWS Elastic Beanstalk的.NET Core Web服务中,我遇到了同样的问题。我将概述我尝试过的所有内容以及最终的解决方法。
希望这会有所帮助。