Я получаю сообщение об ошибке при попытке получить хэш сертификата с удаленного компьютера, используя следующий код:
private string getCertHash(string Hostname)
{
string result = "";
using (ServerManager serverManager = ServerManager.OpenRemote(Hostname))
{
SiteCollection siteCollection = serverManager.Sites;
foreach (Site site in siteCollection)
{
foreach (Binding binding in site.Bindings)
{
if (binding.Protocol == "https")
{
// Error here
foreach (Byte certhashbyte in binding.CertificateHash)
result += certhashbyte.ToString();
}
}
}
}
return result;
}
Ошибка, которую я получаю более подробно:
'binding.certhashbyte' выдал исключение типа
'System.Runtime.InteropServices.COMException'
Либо приложение не вызвало WSAStartup, либо WSAStartup
не удалось. (Исключение из HRESULT: 0x8007276D)
Если заменить следующую строку:
using (ServerManager serverManager = ServerManager.OpenRemote(Hostname))
с
using (ServerManager serverManager = new ServerManager)
для использования локального сервера все работает нормально.
Обратите внимание, что использование ServerManager.OpenRemote (Hostname) в целом работает (я получаю всю остальную информацию, только информация CertHash приводит к ошибке. У меня есть права администратора на обеих машинах (локальных и удаленных). Система - Windows 2008 R2 с использованием IIS 7.5.
Пожалуйста, скажите мне, что я делаю неправильно / что отсутствует / почему возникает ошибка.