使用 Flurl 从 SharePoint 下载文件导致 "Configuration system failed to initialize" 错误
Downloading file from SharePoint with Flurl causes "Configuration system failed to initialize" error
我正在使用 Flurl 从 SharePoint 下载文件。
但是,它会导致 "Configuration system failed to initialize" 错误。
这是我的代码:
var url = "https://mysite.sharepoint.com"
.AppendPathSegment("/_api/web/Shared%20Documents/test.xlsx")
.SetQueryParams(new
{
api_key = ConfigurationManager.AppSettings["MYAPIKEY"],
max_results = 20,
q = "Don't worry, I'll get encoded!"
})
.SetFragment("after-hash");
//returns fullpath for App-specific storage, where inventory data is stored
string fullpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var path = await "https://mysite.sharepoint.com/Shared%20Documents/test.xlsx"
.DownloadFileAsync(fullpath);
我添加的 API 密钥是在 Azure AD 上生成的。
我怀疑错误是由我的 app.config 文件引起的,但是因为我使用的是 Xamarin.Forms,所以我原来没有 app.config 文件。
为了解决这个问题,我使用了 PCLAppConfig 库,并遵循了 link.
中的描述
我的问题是,我不确定应该在 app.config 文件中放入什么。配置文件的当前内容如下,我尝试了一些不同的东西,但我总是遇到同样的错误。
<configuration>
<appSettings>
<add key="api_key" value="MYAPIKEY" />
</appSettings>
</configuration>
这是调用堆栈,以防有帮助:
> 0x3F in GraphTutorial.DownloadFile.Flurlcall at D:\Schule\Diplomarbeit\GraphTutorial\CalendarPage.xaml.cs:35,17 C#
0x33 in System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<GraphTutorial.DownloadFile.<Flurlcall>d__1> C#
0x38 in GraphTutorial.DownloadFile.Flurlcall C#
0x11 in Xamarin.Forms.Button.Xamarin.Forms.Internals.IButtonElement.PropagateUpClicked at D:\a\s\Xamarin.Forms.Core\Button.cs:177,47 C#
0x20 in Xamarin.Forms.ButtonElement.ElementClicked at D:\a\s\Xamarin.Forms.Core\ButtonElement.cs:61,5 C#
0x2 in Xamarin.Forms.Button.SendClicked at D:\a\s\Xamarin.Forms.Core\Button.cs:163,32 C#
0x4 in Xamarin.Forms.Platform.Android.ButtonElementManager.OnClick at D:\a\s\Xamarin.Forms.Platform.Android\ButtonElementManager.cs:25,4 C#
0xD in Xamarin.Forms.Platform.Android.FastRenderers.ButtonRenderer.Android.Views.View.IOnClickListener.OnClick at D:\a\s\Xamarin.Forms.Platform.Android\FastRenderers\ButtonRenderer.cs:71,45 C#
0x13 in Android.Views.View.IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ C#
0x17 in Android.Runtime.DynamicMethodNameCounter.48 C#
原来错误与Flurl本身无关,我使用的url才是真正的问题。
我设法通过使用此查询调用 Microsoft Graph API 使其工作:
GET https://graph.microsoft.com/v1.0/sites/root/drive/root:/Subfolder/test.xlsx
在响应中你会得到 属性 @microsoft.graph.downloadUrl
允许你下载 url.
这里有一个 link 对我解决这个问题有很大帮助:
https://docs.microsoft.com/en-us/graph/api/driveitem-get-content?view=graph-rest-1.0&tabs=http
我正在使用 Flurl 从 SharePoint 下载文件。 但是,它会导致 "Configuration system failed to initialize" 错误。
这是我的代码:
var url = "https://mysite.sharepoint.com"
.AppendPathSegment("/_api/web/Shared%20Documents/test.xlsx")
.SetQueryParams(new
{
api_key = ConfigurationManager.AppSettings["MYAPIKEY"],
max_results = 20,
q = "Don't worry, I'll get encoded!"
})
.SetFragment("after-hash");
//returns fullpath for App-specific storage, where inventory data is stored
string fullpath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
var path = await "https://mysite.sharepoint.com/Shared%20Documents/test.xlsx"
.DownloadFileAsync(fullpath);
我添加的 API 密钥是在 Azure AD 上生成的。
我怀疑错误是由我的 app.config 文件引起的,但是因为我使用的是 Xamarin.Forms,所以我原来没有 app.config 文件。 为了解决这个问题,我使用了 PCLAppConfig 库,并遵循了 link.
中的描述我的问题是,我不确定应该在 app.config 文件中放入什么。配置文件的当前内容如下,我尝试了一些不同的东西,但我总是遇到同样的错误。
<configuration>
<appSettings>
<add key="api_key" value="MYAPIKEY" />
</appSettings>
</configuration>
这是调用堆栈,以防有帮助:
> 0x3F in GraphTutorial.DownloadFile.Flurlcall at D:\Schule\Diplomarbeit\GraphTutorial\CalendarPage.xaml.cs:35,17 C#
0x33 in System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<GraphTutorial.DownloadFile.<Flurlcall>d__1> C#
0x38 in GraphTutorial.DownloadFile.Flurlcall C#
0x11 in Xamarin.Forms.Button.Xamarin.Forms.Internals.IButtonElement.PropagateUpClicked at D:\a\s\Xamarin.Forms.Core\Button.cs:177,47 C#
0x20 in Xamarin.Forms.ButtonElement.ElementClicked at D:\a\s\Xamarin.Forms.Core\ButtonElement.cs:61,5 C#
0x2 in Xamarin.Forms.Button.SendClicked at D:\a\s\Xamarin.Forms.Core\Button.cs:163,32 C#
0x4 in Xamarin.Forms.Platform.Android.ButtonElementManager.OnClick at D:\a\s\Xamarin.Forms.Platform.Android\ButtonElementManager.cs:25,4 C#
0xD in Xamarin.Forms.Platform.Android.FastRenderers.ButtonRenderer.Android.Views.View.IOnClickListener.OnClick at D:\a\s\Xamarin.Forms.Platform.Android\FastRenderers\ButtonRenderer.cs:71,45 C#
0x13 in Android.Views.View.IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ C#
0x17 in Android.Runtime.DynamicMethodNameCounter.48 C#
原来错误与Flurl本身无关,我使用的url才是真正的问题。
我设法通过使用此查询调用 Microsoft Graph API 使其工作:
GET https://graph.microsoft.com/v1.0/sites/root/drive/root:/Subfolder/test.xlsx
在响应中你会得到 属性 @microsoft.graph.downloadUrl
允许你下载 url.
这里有一个 link 对我解决这个问题有很大帮助: https://docs.microsoft.com/en-us/graph/api/driveitem-get-content?view=graph-rest-1.0&tabs=http