C# GoogleWebAuthorizationBroker.AuthorizationAsync在转移服务器中失败
C# GoogleWebAuthorizationBroker.AuthorizationAsync在转移服务器中失败,c#,api,web-applications,calendar,C#,Api,Web Applications,Calendar,GoogleWebAuthorizationBroker.AuthorizationAsync()在(farmed,4.5 NET)临时服务器上失败,但在本地服务器上工作得很好。我遵循了帮助热线上的每一条代码,但仍然没有用 这是我的密码: String gpath = Server.MapPath("credentials/siteAPI.json"); UserCredential credential; string credPath = Server.MapPath("credentia
GoogleWebAuthorizationBroker.AuthorizationAsync()
在(farmed,4.5 NET)临时服务器上失败,但在本地服务器上工作得很好。我遵循了帮助热线上的每一条代码,但仍然没有用
这是我的密码:
String gpath = Server.MapPath("credentials/siteAPI.json");
UserCredential credential;
string credPath = Server.MapPath("credentials");
using (var stream = new FileStream(gpath, FileMode.Open, FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { CalendarService.Scope.Calendar },//
"xx@ccc.com",
CancellationToken.None,
new AppDataFileStore(credPath)
).Result;
}
我得到了这个错误:
System.AggregateException: One or more errors occurred.
---> System.ComponentModel.Win32Exception: Access is denied
at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\GoogleApis.Auth.DotNet4\OAuth2\GoogleWebAuthorizationBroker.cs:line 59
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at z2.Page_Load(Object sender, EventArgs e) in e:\hostingspaces\cal1234\mysitecalendar.com\wwwroot\z2.aspx.cs:line 169
---> (Inner Exception #0) System.ComponentModel.Win32Exception (0x80004005): Access is denied
at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext() in C:\Users\mdril\Documents\GitHub\google-api-dotnet-client\Src\GoogleApis.Auth.DotNet4\OAuth2\GoogleWebAuthorizationBroker.cs:line 59<---
System.AggregateException:发生了一个或多个错误。
--->System.ComponentModel.Win32异常:访问被拒绝
在Microsoft.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务任务)中
在Microsoft.Runtime.CompilerServices.TaskWaiter.HandleNonSuccess(任务任务)中
在C:\Users\mdril\Documents\GitHub\Google api dotnet client\Src\GoogleAppis.Auth.DotNet4\OAuth2\GoogleWebAuthorizationBroker.cs中的Google.api.Auth.OAuth2.GoogleWebAuthorizationBroker.d\uu 1.MoveNext()中:第59行
---内部异常堆栈跟踪的结束---
位于System.Threading.Tasks.Task.ThrowifeException(布尔值IncludeTaskCanceledException)
位于System.Threading.Tasks.Task`1.GetResultCore(布尔waitCompletionNotification)
在System.Threading.Tasks.Task`1.get_Result()中
在e:\hostingspace\cal1234\mysitecalendar.com\wwwroot\z2.aspx.cs中的z2.Page_加载(对象发送方,事件参数e):第169行
--->(内部异常#0)System.ComponentModel.Win32Exception(0x80004005):访问被拒绝
在Microsoft.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务任务)中
在Microsoft.Runtime.CompilerServices.TaskWaiter.HandleNonSuccess(任务任务)中
在C:\Users\mdril\Documents\GitHub\Google api dotnet client\Src\Google api.Auth.OAuth2.GoogleWebAuthorizationBroker.cs中的Google.api.Auth.OAuth2.GoogleWebAuthorizationBroker.d\uu 1.MoveNext()上,我花了几个小时研究同一问题,最后找到了一篇帮助我解决问题的帖子。
邮局在这儿
在这个代码为我工作的dev服务器上,在credPath(请参阅上面代码中的这个变量)文件夹中创建了一个令牌响应文件
我只是把这个文件复制到了登台服务器上,在那里它对我不起作用。
这为我解决了问题
这可能是因为向用户显示了一个同意web页面(在开发服务器中工作),在这种情况下无法显示该页面,从而导致此错误。
同样,这都是理论,但上述解决方案对我有效。gpath是您从google developer下载的文件吗?如果是,您是否直接将文件复制到项目中?如果是,请确保将生成操作更改为“内容”,并将“复制到输出目录”更改为“始终复制”是的gpath是我从google开发者控制台下载的凭据,是的,我在本地复制到我的项目中并上载到我的登台服务器。我始终使用的生成操作是正常的生成网站,我是否应该使用其他内容?您需要使用生成操作复制到内容并复制到输出目录以“始终复制”我以前做过你建议的事情,一切都很好,但这不是正确的方法。必须向登台服务器的任何用户显示“同意”页面,否则此方法无效。我尝试了每一个博客和技巧,但没有一个对我有效,仍然得到相同的错误。。。还有其他想法吗?