Windows服务serviceCredentials无效的十六进制字符串格式

时间:2015-12-25 12:08:22

标签: c# windows-services

我正在调试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:无效的十六进制字符串格式。

3 个答案:

答案 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选项使用查找。服务很好。