下面的代码在本地环境中正常工作,但在共享托管环境中运行已发布代码时遇到问题。
例外:
发生了一个或多个错误。
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托管。面对上述错误 - 访问被拒绝。请帮我解决这个问题。