C# 对路径的访问被拒绝。谷歌api本地iis发布
当我必须验证Google用户的身份验证时,我很难访问某些文件夹 我收到错误: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
当我在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]