拒绝访问路径.googleapi本地iis发布

本文关键字:iis 发布 本地 googleapi 路径 拒绝访问 | 更新日期: 2023-09-27 18:01:27

当我必须验证谷歌用户的身份验证时,我很难访问一些文件夹。

当我在IIS上本地发布时,我得到了错误:Access to the path '..' is denied

我试图更改文件夹的位置,这样它就会在项目的App_Data中——运气不好。

我也试着去做这些人正在做的事情,但没有起到任何作用。

我的代码看起来像:

            string path = AppDomain.CurrentDomain.BaseDirectory + @"'Json'client_secrets.json";
            using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
            {
                try
                {
                    string googlecalendarpath = folderpath + @"'App_Data'GoogleCalendar";
                    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.Load(stream).Secrets, scopes,
                        _currentAccountNo,
                        //Vær sikker på, at dette er det samme altid, og er unikt, da ens permissions til Google Calendar bliver bundet op på dette!
                        CancellationToken.None, new FileDataStore(googlecalendarpath)).Result;
                }
                catch (Exception ex)
                {
                    return "Cred. FEJL: " +ex.GetFullExceptionString();
                }
            }

,其中folderpath来自Server.MapPath("~/App_Data"),而_currentAccountNo是唯一的。当我在网上学习这些例子时,我看不出我遗漏了什么,也看不出自己做错了什么。

  • 谢谢

拒绝访问路径.googleapi本地iis发布

尝试以管理模式运行Visual Studio。

FileDatastore默认情况下将文件放入%appData%中。通常我会做一些类似的事情。(假设我也使用"_currentCountNo"(

new FileDataStore("Console.Analytics.Auth.Store")  

然后当我调用它时,我会得到一个名为的目录

%AppData%'Roaming'Console.Analytics.Auth.Store

该目录中现在存在一个名为的文件

Google.Apis.Auth.OAuth2.Responses.TokenResponse-[account Num]

向fileDataStore发送一个目录只会生成一个目录,该目录的名称与您在%appdata%中发送到fileDataStore的目录的名称相同,这可能不是您想要的。

您可能需要考虑使用LocalFileDataStore,或者更好地创建您自己的idatastore实现。

我不确定这是否是你的问题。如果IIS是否可以访问%appdata%目录,则如何设置IIS是一个棘手的问题。这取决于你将其设置为哪个用户以及作为哪个应用程序池运行。例如,如果内存服务azure只能访问临时目录。

我在使用IIS时已经在本地解决了这个问题。

更改"应用程序池-标识"的"高级"设置。使用您的登录用户,而不是"应用程序池"、"网络"或"本地"。

应用程序池中高级设置的图像