Вы пробовали добавить еще логи? Это избавило меня от пары связанных с этим ошибок в прошлом (однажды я потратил больше времени, чем помню, чтобы отладить проблему, связанную с сертификатом, только чтобы понять, что кто-то перенес время на время, когда мой сертификат больше не действителен) .
Мне удалось обнаружить проблему после прочтения Джеффа Сандерса отличного поста в блоге о процессе отладки ошибок, связанных с сертификатами. Он написан для клиентов asp.net, но одинаково хорошо работает и для обычных клиентов .net.
Суть его - добавление пары слушателей трассировки в ваш файл (App | Web) .Config. Вероятно, больше всего вас заинтересует трассировщик для System.Net и, возможно, System.Net.Sockets.
<configuration>
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.Net">
<listeners><add name="System.Net"/></listeners>
</source>
<source name="System.Net.Sockets">
<listeners><add name="System.Net"/></listeners>
</source>
</sources>
<sharedListeners>
<add
name="System.Net"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="System.Net.trace.log"
traceOutputOptions = "ProcessId, DateTime"
/>
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose" />
<add name="System.Net.Sockets" value="Verbose" />
</switches>
</system.diagnostics>
</configuration>
Попробуйте, и если это не решит вашу проблему, у вас должно быть по крайней мере достаточно данных, чтобы обновить ваш вопрос, добавив больше информации.