IIS部署WCF之“句柄无效”和“必须具有能够进行密钥交换的私钥。该进程必须具有访问私钥的权限。”

最近在学习WCF的知识,尤其是用自定义用户名密码认证方式,问题重重,但过后感觉学到的东西也很多,对它的一些基础知识加深了印象

废话不多说,这两个问题主要出在“服务器端证书”的访问权限上,注意的朋友会发现里VS中它是没问题的,但部署在IIS中问题就出来了。

这个问题是因为 WCF 所使用的帐户(NETWORK SERVICE/ASPNET)对证书私钥文件的读访问权限造成的。

1、证书保存在哪了?

2、给证书加什么权限?

3、怎么加这些权限?

==1、一般会在服务器这个路径:(win2003) C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

==2、给账户NetWork Service / AspNet 加相应的访问权限

==3、可以手工加,也可以通过小工具加 FindPrivateKey.rar

http://www.cnblogs.com/anjou/archive/2010/04/24/1719379.html

http://www.cnblogs.com/anjou/archive/2010/04/24/1719351.html

就这样了,给自己日后用的时候,方便。希望对WCF学习的同仁有帮助。