0

Lists.asmx SharePoint WebサービスのAddAttachmentを呼び出そうとしていますが、HTTP経由でWebサービスを呼び出している場合は、以下のコードが正常に機能します。

        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で失敗しました:Unauthorized

上記の行をコメントアウトしたままにして、この行もコメントアウトすると

listService.Credentials = credentials

同じ401エラー(予期される)が発生するため、資格情報はHTTP経由で正しく受け入れられているように見えますが、HTTPSでは受け入れられていないようです。これを私に説明し、問題を解決する方法について何か考えがありますか?

前もって感謝します!

4

1 に答える 1

0

今朝、私はシステム担当者の 1 人と仕事をしていました。彼はいくつかの IIS ログを確認し、HTTPS 経由で Web サービスにアクセスしようとしているエラーを確認しました。彼は Central Admin に入り、いくつかの代替アクセス マッピングを追加して、HTTPS URL を含めました。その後、すべてがうまくいきました!

于 2010-10-15T14:02:56.153 に答える