我正在使用来自不同线程(ASP.NET应用程序)的Storage SDK 2.0写入Azure Table存储.
CloudTable对象是否是线程安全的?我可以只将CloudStorageAccount,CloudTableClient和CloudTable初始化一次(例如,在静态构造函数中),然后在不同的线程中使用它们吗?
或者每次从空白创建所有CloudStorageAccount,CloudTableClient和CloudTable对象是否更好(如本文所示)?它会以任何方式影响性能吗?
每次对表执行操作时,获取CloudTable实例的首选方法是什么?
在Microsoft Build 2017活动中,我遇到了CosmosDB Table API.看起来像Azure Table Storage.
这是否意味着微软最终会停止支持Azure表存储?
现在,文档Db已不复存在.它已被转换为CosmosDB现在.
此外,主要问题Table Storage是备份.哪个已经解决了CosmosDB Table API.
此外,Table API的定价策略是Throughput-basedTable Storage的定价策略Storage-based.
那么Table Storage对大批量应用程序来说仍然是一个不错的选择吗?
有没有人知道查询azure表存储空值的正确方法.从我所读到的,它是可能的(虽然有一个错误阻止它在开发存储上).但是,当我在实时云存储上执行此操作时,我不断收到以下错误:
其中一个请求输入无效.
这是我放在一起的LINQ查询的一个愚蠢的版本.
var query = from fooBar in fooBarSVC.CreateQuery<FooBar>("FooBars")
where fooBar.PartitionKey == kPartitionID
&& fooBar.Code == kfooBarCode
&& fooBar.Effective_Date <= kFooBarDate.ToUniversalTime()
&& (fooBar.Termination_Date > kFooBarDate.ToUniversalTime() || fooBar.Termination_Date == null)
select fooBar;
Run Code Online (Sandbox Code Playgroud)
如果我运行查询而不检查null,它工作正常.我知道一个可能的解决方案是对该查询带回的集合运行第二个查询.如果我需要,我不介意这样做,但想知道我是否可以先采用这种方法.
有人看到任何明显我做错了吗?
如果我有这样的课程:
public class Facet : TableServiceEntity
{
public Guid ParentId { get; set; }
public string Name { get; set; }
public string Uri{ get; set; }
public Facet Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Parent来自ParentId Guid,该关系旨在由我的存储库填充.那么我如何告诉Azure单独留下该字段?是否存在某种类型的Ignore属性,或者我是否必须创建一个提供这些关系的继承类?
var connectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
Run Code Online (Sandbox Code Playgroud)
但connectionString是null,这里是我的app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="StorageConnectionString"
connectionString="DefaultEndpointsProtocol=https;AccountName=storage;AccountKey=key" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我在Azure中有一个blob容器,pictures其中包含各种文件夹(请参阅下面的快照):
我正在尝试删除快照中标题users和uploads显示的文件夹,但我保留错误:Failed to delete blob pictures/uploads/. Error: The specified blob does not exist.有人能说明我如何删除这两个文件夹吗?通过谷歌搜索这个问题,我无法发现任何有意义的东西.
注意:如果您需要,请向我询问更多信息
我看到几个月前有一个类似的问题,但它确实没有很好地解决我的情况.在这里......
我正在从头开始构建一个基于Web的.NET应用程序,该应用程序有可能成为一个高容量的站点(每月几十页的页面浏览量开始),并且我正在考虑使用Microsoft Azure来托管它.我还没有建造任何东西,我仍在研究我的不同选择.
应用程序本身的核心是一个标准的CRUD应用程序,它作用于许多不同类型的实体(例如用户,订单,项目等).可能存在一些可能正在运行的后台进程和一些数据排队(例如,用于非实时更新 - 例如获取SO徽章),但与用户的大多数交互将是典型的CRUD类型的操作.
关于Azure,我已经阅读了许多关于使用Microsoft Azure存储来存储事务数据的文章,并且强烈考虑这样做而不是使用Azure SQL DB.但是,我还没有看到或读过真人和/或真实公司这样做的一些成功故事.所以我想我会联系SO社区,看看是否有人有使用Microsoft Azure存储的经验,你有什么样的运气,我应该注意的任何问题,以及你所做的任何最佳实践想出来.
我已经阅读了很多Microsoft Azure MSDN部分和Microsoft编程的Microsoft Azure Table API文档.我正在寻找实用建议,经验教训,最佳实践等.提前致谢!
我正在寻找某种地图来显示全球Windows Azure MS数据中心的物理位置.你能帮我吗?
我想将一个非常大的存储容器从一个Azure存储帐户复制到另一个(也恰好在另一个订阅中).
我想就以下选项发表意见:
使用CloudBlob的DownloadToStream()和UploadFromStream()编写一个可以连接到两个存储帐户并一次复制一个blob的工具.这似乎是最糟糕的选择,因为它会在传输数据时产生成本,而且速度很慢,因为数据必须归结为运行该工具的计算机,然后重新上传回Azure.
写一个工人角色来做同样的事情 - 理论上这应该更快,不会产生任何代价.但是,这是更多的工作.
将工具上传到正在运行的实例,绕过工作者角色部署,并在实例被回收/重置之前祈祷工具完成.
使用现有工具 - 没有发现任何有趣的东西.
关于这种方法的任何建议?
更新:我刚刚发现,2012年7月7日或之后创建的所有存储帐户最终都引入了此功能(仅适用于REST API):
http://msdn.microsoft.com/en-us/library/windowsazure/dd894037.aspx
我正在尝试访问Azure中为Azure文件存储格式的文件提供的URL,但是我在下面收到此错误.有可能得到这个吗?为什么他们在没用时会提供公共网址?另外我如何直接从IIS访问它?
<Error>
<Code>InvalidHeaderValue</Code>
<Message>
The value for one of the HTTP headers is not in the correct format. RequestId:5d681103-0a1a-00cc-5555-5s4849000000 Time:2016-02-04T14:06:50.1786949Z
</Message>
<HeaderName>x-ms-version</HeaderName>
<HeaderValue/>
</Error>
Run Code Online (Sandbox Code Playgroud)