C# 对路径的访问被拒绝。谷歌api本地iis发布

C# 对路径的访问被拒绝。谷歌api本地iis发布,c#,iis,google-api,google-calendar-api,C#,Iis,Google Api,Google Calendar Api,当我必须验证Google用户的身份验证时,我很难访问某些文件夹 我收到错误:当我在IIS上本地发布时,对路径“..”的访问被拒绝 我试图更改文件夹的位置,所以它会出现在项目的App_数据中-不走运 我也试着去做我们正在做的事情,但也没能帮上忙 我的代码如下所示: string path = AppDomain.CurrentDomain.BaseDirectory + @"\Json\client_secrets.json"; using (va

当我必须验证Google用户的身份验证时,我很难访问某些文件夹

我收到错误:
当我在IIS上本地发布时,对路径“..”的访问被拒绝

我试图更改文件夹的位置,所以它会出现在项目的App_数据中-不走运

我也试着去做我们正在做的事情,但也没能帮上忙

我的代码如下所示:

            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\u Data”)
,并且
\u currentAccountNo
是唯一的。 我看不出我在网上的例子中遗漏了什么,也看不出我做错了什么

  • 谢谢

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

文件数据存储默认将文件放在%appData%中。通常我会这样做。(假设我也使用“\u currentAccountNo”)

然后当我调用它时,我得到一个名为

%AppData%\Roaming\Console.Analytics.Auth.Store
在该目录中,现在有一个名为

Google.Apis.Auth.OAuth2.Responses.TokenResponse-[account Num]
将目录发送到fileDataStore只会生成一个目录,其中包含您在%appdata%中发送到fileDataStore的目录的名称,这可能不是您想要的

您可能希望转而考虑使用idatastore,或者更好地创建自己的idatastore实现


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

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

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


我是。这并不是我调试的时候,而是我在本地部署到站点的时候。调试时,它工作正常。好的,那么我建议您尝试向所有人授予文件夹权限。尝试向这些用户授予读/写权限:所有人、经过身份验证的用户、本地帐户、IUSR、本地服务、网络服务、用户、IIS\U IUSR。。没有帮助:(@MothCreek)您有没有找到解决方案。我也有同样的问题。当我更改为IIS托管时,与IIS Express一起工作时,我遇到了一个异常。我在开始时尝试使用漫游文件夹,但仍然遇到“拒绝访问”错误。这就是为什么我尝试使用另一个文件夹,但仍然会遇到相同的错误。请重试nLocalFileDataStore的实现很好,但运气不好。我还尝试向每个人授予对文件夹的读/写访问权限-还没有授予任何权限。我们确定这不是他们抱怨的json文件的访问权限?是的,我尝试像他们在“Google Dotnet Sample master”项目中所做的那样,在该项目中,他们实例化了客户端ID和d客户端以字符串形式在本地加密。仍在调试模式下工作,但在本地发布时获取“访问被拒绝”。我不确定是否缺少授予某些用户对文件夹的读/写访问权限。这些用户拥有:所有人、经过身份验证的用户、本地帐户、IUSR、本地服务、网络服务、用户、IIS\IUSR。如果文件“Google.A”pis.Auth.OAuth2.Responses.TokenResponse..在我运行发布版本之前在文件夹中,它工作正常。但我无法写入它。我现在已尝试为该文件夹授予对所有文件的读/写访问权限。
Google.Apis.Auth.OAuth2.Responses.TokenResponse-[account Num]