我正在调试Win服务。我在服务器上添加了一些证书。试图通过序列号查找证书。 https://gyazo.com/9cdcda75e98fe7b7c35496976a5aaaeb
behavior.config:
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="DDBS.DDBSPasswordValidator, DDBS" />
<serviceCertificate findValue="1C5411F9D38252824C2EC1CC7E5EBE3F" x509FindType="FindBySerialNumber" storeLocation="LocalMachine" storeName="My" />
</serviceCredentials>
我收到错误:服务无法启动。 System.FormatException:无效的十六进制字符串格式。
答案 0 :(得分:17)
来自JanAngelovičMSDN Forum:
如果剪切并粘贴[序列号或指纹] 从公共证书对话框中,它将复制到UNICODE中 (UTF-16LE)编码带有特殊的不可见控制字符 (0xFF和0xFE又名“字节顺序标记”)的开头 字符串。
就个人而言,我用指纹看到了这一点;剪切&amp;从对话框粘贴到Visual Studio中保留了2个未显示的字符(可以通过光标“逐步”并删除)。
答案 1 :(得分:2)
删除所有 findValue =&#34; XXXXXXX&#34; ,然后再次写入..有时无效的字符在findValue =&#34之后; ??? &lt; --- here
答案 2 :(得分:-3)
FindBySubjectName选项使用查找。服务很好。