0

我们正在使用 Box.V2.Sdk 使用以下代码将文件上传到 box.com

Function UploadToBox(ByVal attachedFilename As String, ByVal stream As System.IO.Stream) As Boolean

    Dim clientID As String
    Dim clientSecret As String
    Dim oldRefreshToken As String
    Dim newToken As BoxApi.V2.Authentication.OAuth2.OAuthToken

    clientID = "your client id"
    clientSecret = "you client secret"

    Dim tokenProvider As New TokenProvider(clientID, clientSecret)

    '''' Reading Refresh token from the file
    Dim streamReader As StreamReader
    streamReader = System.IO.File.OpenText(Server.MapPath("~\\Box\\BoxApiRefreshToken.txt"))
    oldRefreshToken = streamReader.ReadToEnd()
    streamReader.Close()

    newToken = tokenProvider.RefreshAccessToken(oldRefreshToken)
    Dim boxManager As New BoxManager(newToken.AccessToken)

    '''' Writing the new Refresh token to the file
    Dim streamWriter As New StreamWriter(Server.MapPath("~\\Box\\BoxApiRefreshToken.txt"))
    streamWriter.Write(newToken.RefreshToken)
    streamWriter.Close()

    Dim rootFolder As Folder

    rootFolder = boxManager.GetFolder(Folder.Root)

    boxManager.CreateFile(rootFolder, attachedFilename, ConvertStreamToByteArray(stream))

    Return True

End Function 

这里提到 http://www.codeproject.com/Tips/769414/Uploading-files-using-Box-API

UploadToBox 方法处于循环中,并为我们需要上传的每个文件调用。但是,在几次上传后,我们收到了错误

底层连接已关闭:服务器关闭了预期保持活动状态的连接。

直观地看来,与盒子的连接正在关闭。但是从上面的代码中,我们不知道哪个部分正在尝试创建连接,如果它关闭了,则创建一个新的。使用 c# SqlConnection 检查连接是打开还是关闭相当容易。

请提出你的想法。

4

1 回答 1

0

此问题听起来类似于在官方支持的 sdk 中发现并已修复的问题: https ://github.com/box/box-windows-sdk-v2

你试过用那个吗?

最初的问题是由于默认超时在上传完成之前到期,连接正在关闭。失败的上传是否大于成功的上传?您使用的 SDK 在幕后使用 RestSharp,因此您可能需要查看源代码以查看是否可以配置超时。

高温高压

于 2015-02-04T18:40:13.997 回答