Я знаю, что в stackoverflow есть много вопросов, связанных с тем же темами, но здесь у меня есть несколько разных проблем:
Я использовал installer class
to reserve a port
и bind it with hash
на win7/Winxp
:
if (Environment.OSVersion.Version.Major > 5)
{
startInfo.Arguments = @"/c netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE";
netsh http add sslcert ipport=127.0.0.1:8083 certhash=df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 appid={00112233-4455-6677-8899-CCBBCCDDEEFF} clientcertnegotiation=enable;
}
else
{
startInfo.Arguments = @"/c httpcfg set urlacl /u https://127.0.0.1:8083/";
httpcfg set ssl -i 127.0.0.1:8083 -h df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 -f 2
}
Нет ничего плохого в коде и setup project
. Все работает отлично, за исключением следующих пунктов:
- всякий раз, когда я устанавливал
exe
наwin7
, он успешно запускает веб-службуWCF
. -
Всякий раз, когда я использую
WinXP(SP#)
на своей локальной машине, он выдает сообщение об ошибке:Ошибка 107 (net:: ERR_SSL_PROTOCOL_ERROR): ошибка протокола SSL
-
Но когда я использую teamviewer для входа на любую виртуальную машину
WinXp
, она выполняется успешно.
Как это возможно, я пробовал это несколько раз, но получил тот же результат. Он работает на Xp (работает на VM), но не на реальной машине XP?
Я написал что-то неправильно, чтобы связать и зарезервировать порт? Здесь играет роль брандмауэр?
Я также подтвердил это с помощью httpcfg query ssl
, и хэш успешно привязан к порту.
Любая помощь будет заметна.
IMO эта команда не работает: netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE
Я попытался выяснить ошибку с fiddler
, и он говорит:
"Failed to secure existing conection for <ipaddress>. Authentication failed because the remote party has closed the transport stream."