Вызов веб-службы SharePoint через SSL в VB.Net (401 не авторизован) - PullRequest
0 голосов
/ 15 октября 2010

Я пытаюсь вызвать AddAttachment веб-службы Lists.asmx SharePoint, приведенный ниже код работает нормально, если я вызываю веб-службу по HTTP.

        Dim img(MyFile.PostedFile.ContentLength - 1) As Byte
        MyFile.PostedFile.InputStream.Read(img, 0, img.Length)

        'Dim fStream As FileStream = File.OpenRead(FullFileName)
        Dim fileName As String = MyFile.PostedFile.FileName.Substring(3)

        Dim listService As New wsList.Lists()
        Dim credentials As New System.Net.NetworkCredential(UserName, Password, Domain)

        If Not SiteUrl.EndsWith("/") Then
            SiteUrl += "/"
        End If
        SiteUrl += "_vti_bin/Lists.asmx"
        'SiteUrl = SiteUrl.ToLower.Replace("http:", "https:")

        listService.Url = SiteUrl
        listService.Credentials = credentials

        Dim addAttach As String = listService.AddAttachment(ListName, ItemId, fileName, img)

        ReturnValue = True

Однако, если я раскомментирую эту строку

'SiteUrl = SiteUrl.ToLower.Replace("http:", "https:")

Я получу следующую ошибку: Запрос не выполнен с состоянием HTTP 401: неавторизован

Теперь, если я оставлю вышеупомянутую строку закомментированной И затем закомментирую эту строку

listService.Credentials = credentials

Я получу ту же ошибку 401 (ожидаемо), поэтому кажется, что учетные данные принимаются правильно по HTTP, но не по HTTPS. Можно ли мне помочь объяснить это и подумать, как решить проблему?

Заранее спасибо!

1 Ответ

0 голосов
/ 15 октября 2010

Этим утром я работал с одним из наших системных парней. Он проверил некоторые журналы IIS и увидел ошибки, пытаясь получить доступ к веб-службе через HTTPS. Он вошел в Central Admin и добавил некоторые сопоставления альтернативного доступа, чтобы включить URL-адреса HTTPS. Тогда все заработало!

...