3

Вопрос: Я написал консольную программу, которая использует веб-службу SQL Server 2005 для загрузки отчетов в службу отчетов SQL Server 2005 (так что мне не нужно каждый раз загружать 100 отчетов вручную).Как игнорировать ошибку SSL-сертификата в запросе WebService?

Он отлично работает на месте и удаленно. Но теперь, проблема один сервер использует SSL так rs.Url = «https: //hostname/ReportServer/reportservice2005.asmx

проблема сейчас сертификат SSL является недействительным ... я могу получить доступ к ReportServer из браузера, однако, игнорируя эту ошибку. Как я могу сделать это с веб-сервиса?

' http://msdn.microsoft.com/en-us/library/aa225813(SQL.80).aspx 
    ' COR.Reporting.ReportingServiceInterface.CreateThisReport(strFileNameAndPath, strReportName, strReportingPath) 
    ' COR.Reporting.ReportingServiceInterface.CreateThisReport("c:\path\to\file\xy.rdl", "xy", "/COR") 
    Public Shared Sub CreateThisReport(ByVal strFileNameAndPath As String, ByVal strReportName As String, ByVal strReportingPath As String, Optional ByVal bOverwrite As Boolean = True) 
     Dim rs As ReportingService2005 = New ReportingService2005 
     rs.Credentials = ReportingServiceInterface.GetMyCredentials(strCredentialsURL) 
     rs.Timeout = ReportingServiceInterface.iTimeout 
     rs.Url = ReportingServiceInterface.strReportingServiceURL 


     Dim btBuffer As Byte() = Nothing 

     Dim rsWarnings As Warning() = Nothing 
     Try 
      Dim fstrStream As System.IO.FileStream = System.IO.File.OpenRead(strFileNameAndPath) 
      btBuffer = New [Byte](fstrStream.Length) {} 
      fstrStream.Read(btBuffer, 0, CInt(fstrStream.Length)) 
      fstrStream.Close() 
     Catch ex As System.IO.IOException 
      Throw New Exception(ex.Message) 
     End Try 


     Try 
      rsWarnings = rs.CreateReport(strReportName, strReportingPath, bOverwrite, btBuffer, Nothing) 

      If Not (rsWarnings Is Nothing) Then 
       Dim warning As Warning 
       For Each warning In rsWarnings 
        Console.WriteLine(warning.Message) 
       Next warning 
      Else 
       Console.WriteLine("Report: {0} created successfully with no warnings", strReportName) 
      End If 

     Catch ex As System.Web.Services.Protocols.SoapException 
      Console.WriteLine(ex.Detail.InnerXml.ToString()) 
     End Try 
    End Sub ' End Function CreateThisReport 

ответ

8

Вы можете сделать это путем регистрации делегата с ServicePointManager.ServerCertificateValidationCallback, который возвращает истинный. Если делегат возвращает истину все сертификаты (срок действия а также недействительными).

+1

Просто нужно добавить эту строку: System.Net.ServicePointManager.ServerCertificateValidationCallback = Function() True –

Смежные вопросы