【发布时间】:2016-04-27 15:57:31
【问题描述】:
我正在使用 Dropbox 的 .Net SDK 使用有效的访问令牌将文件上传到我的 Dropbox。从“localhost”执行时,代码运行良好。
但是在 Azure 服务器上部署相同,代码不执行,Dropbox 没有返回错误/响应,也没有文件上传。
Dropbox 确认代码的行为在所有 .NET 环境中应该是相同的。他们声称这可能是因为 Azure 服务器防火墙或防病毒安全可能会阻止对 Dropbox 的请求。
任何人都可以帮助我使其在 Azure 环境中运行,或者我如何跟踪 Azure 服务器中被防火墙阻止的请求?
下面是示例代码,
public async Task<bool> UploadFile(string accesstoken, string folder, string filename, byte[] file)
{
try
{
using (var client = new HttpClient())
{
using (var dropbox = new Dropbox.Api.DropboxClient(accesstoken))
{
var response = await dropbox.Files.UploadAsync("/" + folder + "/" + filename, WriteMode.Overwrite.Instance, body: new MemoryStream(file));
}
}
return true;
}
catch (Exception ex)
{
throw ex;
}
}
我从Dropbox blog得到以上信息
【问题讨论】:
-
你不需要
using (var client = new HttpClient())using 块。 -
HttpClient 继承自 IDisposable,因此,应在某个时候调用 Dispose()。在大多数情况下,using 语句是最好的方法,因为它实现了 try,catch,finally 以确保所有资源都被释放,即使出现异常。
标签: asp.net azure oauth-2.0 firewall dropbox-api