拒绝访问路径.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
是唯一的。当我在网上学习这些例子时,我看不出我遗漏了什么,也看不出自己做错了什么。
- 谢谢
尝试以管理模式运行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时已经在本地解决了这个问题。
更改"应用程序池-标识"的"高级"设置。使用您的登录用户,而不是"应用程序池"、"网络"或"本地"。
应用程序池中高级设置的图像