【问题标题】:GoogleWebAuthorizationBroker - Access to the path 'C:\Windows\system32\config\systemprofile' is deniedGoogleWebAuthorizationBroker - 拒绝访问路径“C:\Windows\system32\config\systemprofile”
【发布时间】:2018-02-01 13:26:24
【问题描述】:

我正在使用 Google Analytics 报告 API v4 (c#) 来获取数据。我使用下面的代码进行授权。在我的本地机器上,一切正常。但在我的生产服务器上,我收到错误消息:“访问路径 'C:\Windows\system32\config\systemprofile' 被拒绝。” 它与文件夹/文件读写权限无关,因为我是从在线资源中读取的。我无法弄清楚这个......这是我的代码:

var client = new WebClient();

var stream = client.OpenRead("https://api.myjson.com/bins/drj87");

var loginEmailAddress = ConfigurationManager.AppSettings["AnalyticsReporting.Email"];

return await GoogleWebAuthorizationBroker.AuthorizeAsync(
    GoogleClientSecrets.Load(stream).Secrets,
    new[] { AnalyticsReportingService.Scope.Analytics },
    loginEmailAddress, CancellationToken.None,
    new FileDataStore("GoogleAnalyticsApiConsole"));

【问题讨论】:

    标签: c# google-analytics google-reporting-api


    【解决方案1】:

    来自https://developers.google.com/api-client-library/dotnet/reference/1.9.1/classGoogle_1_1Apis_1_1Util_1_1Store_1_1FileDataStore

    Google.Apis.Util.Store.FileDataStore.FileDataStore(string folder, bool fullPath = false)         
    

    构造一个新的文件数据存储。如果 fullPath 是 false 路径将用作相对于 Environment.SpecialFolder.ApplicationData,否则输入文件夹 将被视为绝对。如果文件夹不存在,则创建该文件夹 还没有。

    因此,请将您的服务帐户 有权访问的目录的完整路径设置为 true。

    【讨论】:

    • 但是如何在我的项目中选择一个文件夹?比方说经典的 App_Data-folder.. 在生产中,我只能访问在我的项目中创建的文件夹
    • 放到配置文件里?还是使用当前可执行文件的 FullPath 来查找您的应用程序的路径?
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多