为什么创build和删除Azure表失败?
我想知道为什么试图运行下面的testing套件失败时,我试图删除我已经存储实体的表。我得到的错误是
1)Azure存储云存储操作“毕竟”挂钩:错误:指定的资源不存在。 RequestId:3745d709-fa5e-4a2b-b517-89edad3efdd2发表时间:2013-12-03T22:26:39.5532356Z
如果我注释掉实际插入的数据,那么它每隔一段时间都会失败,如果我尝试插入数据,那么每次都会失败,并且附加一个“指定的表不存在”。
对于第一种情况,这似乎表明在表创build中存在某种延迟,所以在其他所有testing中都是成功的,对于第二种情况,似乎表明即使我的callback函数是在表创build后调用的,该表还没有准备好数据插入。
testing套件和相关代码如下所示:
describe('cloud storage operations', function () { var storage; before(function (done) { this.timeout(5000); storage = AzureStorage.usingTable('TEST', done); }); after(function (done) { storage.deleteTable(done); }); it('should store without trouble', function (done) { storage.save(factory.createChangeSet()).then(done, done); }); });
… //从azure.js剪下
var AzureStorage = function (storageClient, tableName, callback) { assert(storageClient && tableName && partitionKey, "Missing parameters"); this.storageClient = storageClient; this.tableName = tableName; var defaultCallback = function (err) { if (err) { throw error; } }; this.storageClient.createTableIfNotExists(this.tableName, function () { callback(); } || defaultCallback); }; AzureStorage.usingTable = function (tableName, callback) { return new AzureStorage( azure.createTableService(accountName, accountKey) , tableName , callback ); }; AzureStorage.prototype.deleteTable = function (callback) { this.storageClient.deleteTable(this.tableName, callback); };
我已经用c#库打了这个,但我很确定错误消息指出表不能创build,因为一个操作仍在进行一个同名的表。 考虑到后端支持存储,这是不可能的。 该表需要从3个本地副本以及配对数据中心的副本中删除。
有了这种asynchronous操作,build立一个足够快的testing,这将是一个挑战。
解决方法可能是增加附加到“testing”表名称的值,该名称对于该testing运行是唯一的。
- HTTP状态代码200,但页面不加载Node.js Socket.io – Node.js教程随着Socket.io,Daniel Nill,fs.readFile(),socket.html
- 如何知道Jade中的块内容是否为空
- node.js http和bingsearchapi
- Azure Web App:激活应用程序日志超过12小时
- 错误:EPERM,Node.js和Etherpad Lite不允许的操作
- 尝试在Azure上使用imagemagick会导致“系统找不到文件”错误
- 无法启动在Azure中托pipe的nodejs web api
- 无法从本地计算机上的socket.io-client连接到Azure Web App上的socket.io
- 哪种azure色的服务,我应该select我的node.js应用程序?
- 无法使用Visual Studio 2013将节点js站点发布到Azure
- Jenkins在Azure上部署NodeJS应用程序