Ну, я понял это. Мне потребовалось гораздо больше времени, чем мне хотелось бы поговорить, но я хотел поделиться своим решением, поскольку это ОГРОМНАЯ моя любимая мозоль, чтобы увидеть стандарт. "О, я исправил это! Спасибо!" посты, которые заставляют всех висеть на том, что на самом деле произошло.
Зв
Основная проблема заключалась в том, что по умолчанию Visual Studio 2008 использует TLS для рукопожатия SSL, а веб-сервис на базе Oracle / Java, к которому я пытался подключиться, использовал SSL3.
Когда вы используете «Добавить ссылку на службу ...» в Visual Studio 2008, вы не можете указать, что протоколом безопасности для менеджера точки обслуживания должен быть SSL3.
Если только.
Вы берете статический документ WSDL и используете wsdl.exe для генерации прокси-класса .
wsdl /l:CS /protocol:SOAP /namespace:MyNamespace MyWebService.wsdl
Затем вы можете использовать C Sharp Compiler , чтобы превратить этот прокси-класс в библиотеку (.dll) и добавить его в ваши .Net проекты «Ссылки».
csc /t:library /r:System.Web.Services.dll /r:System.Xml.dll MyWebService.cs
На этом этапе вам также необходимо убедиться, что вы включили System.Web.Services в свои «Ссылки».
Теперь вы сможете звонить на свой веб-сервис без проблем в коде. Чтобы заставить работать , вам потребуется добавить одну волшебную строку кода, прежде чем создавать экземпляр службы.
// We're using SSL here and not TLS. Without this line, nothing workie.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
Ладно, я был очень впечатлен собой, так как тестирование было великолепно на моей коробке разработчика. Затем я развернул на другой клиентский компьютер, и он не мог подключиться снова из-за проблем с правами доступа / правами доступа. Это пахло сертификатами для меня (как бы они ни пахли). Чтобы решить эту проблему, я использовал certmgr.exe для регистрации сертификата для сайта в доверенном корне на локальном компьютере.
certmgr -add -c "c:\someDir\yourCert.cer" -s -r localMachine root
Это позволяет мне распространять сертификат на наши клиентские сайты и автоматически устанавливать его для пользователей. Я до сих пор не уверен в том, насколько «безопасными» будут различные версии окон в отношении автоматической регистрации сертификатов, подобной этой, но до сих пор она прекрасно работала.
Надеюсь, этот ответ поможет некоторым людям. Спасибо также за все, что вы помогли в этом, и предоставили некоторую информацию.