我的服务很简单,
public class AzureService : IAzureService
{
private readonly CloudBlobContainer _container;
public AzureService(ISettings settings)
{
var storageAccount = CloudStorageAccount.Parse(settings.BlobConnectionString);
var blobClient = storageAccount.CreateCloudBlobClient();
_container = blobClient.GetContainerReference(settings.BlobContainerName);
}
public Task UploadBlobAsync(string fileName, Stream stream)
{
var blob = _container.GetBlockBlobReference(fileName);
return blob.UploadFromStreamAsync(stream);
}
public Task DeleteBlobAsync(string fileName)
{
var blob = _container.GetBlockBlobReference(fileName);
return blob.DeleteAsync();
}
}
此方法从调用,
public Task SaveAllAsync(Dictionary<string, Stream> images)
{
var tasks = new List<Task>();
foreach (var image in images)
{
var fileName = image.Key;
var stream = image.Value;
var task = _azureService.UploadBlobAsync(fileName, stream);
tasks.Add(task);
}
return Task.WhenAll(tasks);
}
我的流是HttpPostedFileBase.InputStream。有时它可以工作,有时我会得到远程服务器返回错误:(400)错误请求。
。如果我设置一个断点,它也会起作用。
你所描述的行为听起来非常像线程问题(即,如果你将代码断点,它会很好地工作,因为当时它实际上是单线程的),导致不完整或无效的数据被发送到Azure Storage API。
您的“var image”定义在多线程环境中可能会出现意外行为(如果您使用ReSharper,它会突出显示此变量并建议更改代码,因为它可能不安全)。
请阅读这篇SO帖子,了解更多信息以及如何更好地实现您的代码。
foreach标识符和闭包
我有同样的问题,我试图上传20张图片在一击,单线程作品,多线程使用<代码>等待任务。WhenAll失败,显示“远程服务器返回一个错误:(400)错误请求。”
>
有关更详细的信息,请参阅Microsoft.WindowsAzure.Storage.StorageException
中从Upload[xxx]异步方法抛出的请求信息。
起初,请求信息
说了一些关于MD5问题的事情,错误代码为“Md5Mismatch”,买我的直觉说不然,因为单线程像一个魅力,然后..我找到了。。。DefaultRequestOptions.Parallel操作
在 CloudBlobClient
对象和问题上的线程计数。
BlobRequest选项成员MSDN
< br >
private CloudBlobContainer ConnectToImageContainer()
{
var credentials = new StorageCredentials(AccountName, ImagesContainerKey);
var account = new CloudStorageAccount(credentials, useHttps: true);
var client = account.CreateCloudBlobClient();
client.DefaultRequestOptions.ParallelOperationThreadCount = 64; // max value
client.DefaultRequestOptions.SingleBlobUploadThresholdInBytes = 67108864; // max value
var container = client.GetContainerReference(ImagesContainerName);
return container;
}
JMeter HTTP请求-404错误 当我运行jmx文件时,其中一个HTTP请求文件会抛出404错误。屏幕截图如上图所示。 有人能为这个问题提出一些解决方案吗?
我已经编写了一个程序,从usb摄像头捕获图像,并根据检测到的每帧颜色跟踪对象的位置。间歇性(可能在1分钟、10分钟或半小时后发生)我收到错误消息: 我遵循的流程是: 用相机拍摄一帧,cap=cv2。视频捕获(1)/cap。read() 变换几何,cv2。透视图 高斯模糊滤波器,cv2。高斯模糊 BGR到HSV转换,cv2。CVT彩色(模糊帧,cv2.COLOR\u BGR2HSV) 轮廓发现和分析
问题内容: 我只是使用a 从这样的用户那里获取最新的tweet: 这在我的本地主机上运行良好,但是当我将其上传到服务器时会引发以下错误: 警告: file_get_contents(http://api.twitter.com/1/statuses/user_timeline/User.json)[function.file- get-contents]:无法打开流:HTTP请求失败!HTTP /
我们有一个SSL问题,我是99%,这不是你通常的证书信任商店旋转木马。 我们有一个Weblogic服务器试图通过LDAPS与Active Directory建立SSL连接,底层SSL实现是JSSE。 有时,它是有效的。通常在重新启动Weblogic后的几个小时内。 之后,我们开始得到SSL握手错误,与SSL调试打开我们看到: [ACTIVE]ExecuteThread:'10'用于队列:'webl
我已经完成了以下配置并尝试了几乎所有找到的解决方案,但没有任何帮助。当我在战争包中部署Spring启动应用程序时。没有错误记录在weblogic日志中,但应用程序抛出404错误。 web.xml weblogic.xml 应用程序属性 root-context.xml 它包含应用程序特定的配置。 应用程序开始.java 无法从pom.xml中排除tomcat服务器,因为它编译失败。在使用sprin
我想截图一个网页,但无论我做什么木偶总是崩溃。 我将上面的代码保存为web.js,并在cmd中执行节点web.js。它在Chrome窗口出现2秒后就崩溃了,页面没有加载。 (节点:27064)UnhandledPromiserEjectionWarning:#(使用显示创建警告的位置)(节点:27064)UnhandledPromiserEjectionWarning:未处理的承诺拒绝。这个错误可