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 メソッドはループ内にあり、アップロードする必要があるすべてのファイルに対して呼び出されます。ただし、数回アップロードした後、エラーが発生します

基礎となる接続が閉じられました: 維持されるはずの接続がサーバーによって閉じられました。

直感的に、box への接続が閉じられているように見えます。しかし、上記のコードから、接続を作成しようとしている部分がわからず、閉じている場合は新しい接続を作成します。c# SqlConnection を使用すると、接続が開いているか閉じているかを簡単に確認できます。

あなたの考えを提案してください。

4

1 に答える 1

0

この問題は、公式にサポートされている SDK で発見され、修正されたものと似ています: https://github.com/box/box-windows-sdk-v2

あなたはそれを使ってみましたか?

その元の問題は、アップロードが完了する前にデフォルトのタイムアウトが期限切れになるため、接続が閉じられることでした。失敗しているアップロードは、成功しているアップロードよりも大きいですか? 使用している SDK は、内部で RestSharp を使用しているため、タイムアウトを構成できるかどうかを確認するには、ソースを確認する必要がある場合があります。

HTH

于 2015-02-04T18:40:13.997 に答える