从Windows共享主机访问Google Drive API时访问被拒绝

时间:2017-07-16 16:31:31

标签: c# .net api oauth

下面的代码在本地环境中正常工作,但在共享托管环境中运行已发布代码时遇到问题。

例外:

发生了一个或多个错误。

  

System.Net.HttpListenerException(0x80004005):访问被拒绝   System.Net.HttpListener.AddAllPrefixes()at   System.Net.HttpListener.Start()at   Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.StartListener()at   Google.Apis.Auth.OAuth2.LocalServerCodeReceiver.d__8.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext()

我的代码是:

UserCredential credential;

            using (var stream =
                new FileStream(HttpContext.Current.Server.MapPath("~/GoogleDrive\\client_secret.json"), FileMode.Open, FileAccess.Read))
            {
                string credPath = HttpContext.Current.Server.MapPath("~/GoogleDrive\\credentials\\sheets.googleapis.com-dotnet-quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
            }

            var driveService = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            });

            string folderId = string.Empty;

            folderId = "FolderID here";

            string fileExt = Path.GetExtension(fileuploaded.FileName);

            var fileMetadata = new Google.Apis.Drive.v3.Data.File()
            {
                Name = FileName + fileExt,
                Parents = new List<string>
                {
                    folderId
                }
            };

            FilesResource.CreateMediaUpload request;
            using (var stream = fileuploaded.InputStream)
            {
                request = driveService.Files.Create(
                    fileMetadata, stream, fileuploaded.ContentType);
                request.Fields = "id";
                request.Upload();
            }

            var file = request.ResponseBody;

我已将代码发布到共享Windows托管。面对上述错误 - 访问被拒绝。请帮我解决这个问题。

0 个答案:

没有答案