尝试从我的网络服务下载文件时,我遇到了一种奇怪的行为。
我的网络服务是基于IIS的.net服务。它的一项任务是从URL中检索作为其工作流程一部分的图像。这通常有效。我们有一项新要求支持从firebasestorage URL下载。这看起来非常简单,但出于某种原因,当基于IIS的Web服务尝试下载时,它不起作用。
如果我在独立应用程序中使用相同的代码,下载工作正常。该错误是来自googleapis的回复,因此调用方式必须有所不同,但我不知道它是什么。
基本代码如下所示(擦除客户端特定信息):
using (WebClient wc = new WebClient())
{
Uri uri = new Uri("https://firebasestorage.googleapis.com/v0/b/hidden.appspot.com/o/images%2F20182248141Image.jpg?alt=media&token=******-474d-4693-a36c-dfee***cb9c4");
wc.DownloadFileAsync(uri, @"c:\temp\Image.jpg");
}
如果我在C#交互式窗口或独立应用程序中运行上述代码段,则会下载该文件。
如果我使用IIS的上下文运行代码段,则WebClient会报告:远程服务器返回错误:(400)错误请求。