0

我们正在使用 Azure SDK 2.3,对于团队合作,我们希望使用与 Azure Storage Emulator 相同的存储数据,这可能吗?

假设我们有一个中心机器,它有一个正在运行的 SQL Server 实例,我们的开发人员可以配置存储模拟器以将数据存储在同一个数据库上:

C:\Program Files (x86)\Microsoft SDKs\Windows Azure\Storage Emulator>wastorageemulator init -server MyServerName -forcecreate -inprocess

虽然它说我没有创建数据库的权限,但数据库确实创建成功:

Windows Azure Storage Emulator 3.0.0.0 command line tool
Added reservation for http://127.0.0.1:10000/ in user account DomainName\UserName.
Added reservation for http://127.0.0.1:10001/ in user account DomainName\UserName.
Added reservation for http://127.0.0.1:10002/ in user account DomainName\UserName.

Attempting to use server specified.
User specified an instance through /server or /sqlInstance options.
Probing SQL Instance: 'MyServerName'.
Found SQL Instance MyServerName.
Creating database WAStorageEmulatorDb30 on SQL instance 'MyServerName'.

Granting database access to user DomainName\UserName.
Cannot create database 'WAStorageEmulatorDb30' : User does not have permission t
o perform this action..
One or more initialization actions have failed. Resolve these errors before atte
mpting to run the storage emulator again.
Error: Cannot create database 'WAStorageEmulatorDb30' : User does not have permi
ssion to perform this action..

现在,当我运行 Storage Emulator 时,它会将数据存储到远程服务器数据库 WAStorageEmulatorDb30,即使上面说我没有得到它。

但问题是,如果其他开发人员运行相同的命令,它会在该服务器上删除/创建相同的数据库,并且似乎稍后会担任该数据库的所有者角色,所以当我现在运行我的存储模拟器时,它会切换到本地自动,这意味着我们不能为我们的存储模拟器共享同一个数据库。

所以对于团队合作来说,这很烦人。我们希望我们能在本地做足够的测试,而不是依赖云,也就是说,我们需要共享同一个存储。

有人在实际工作中遇到过这个问题吗?非常感谢。

4

1 回答 1

0

因为存储模拟器真的只适合本地开发,我还没有真正尝试过你想要完成的事情,但我相信如果你发出没有-forcecreate参数的存储模拟器初始化命令,数据库不会被删除并且所有条目都会被保留。我刚刚尝试过,我能够在我的存储模拟器中看到较旧的记录。

所以你可能想尝试的命令是:

C:\Program Files (x86)\Microsoft SDKs\Windows Azure\Storage Emulator>wastorageemulator init -server MyServerName -inprocess

请试一试,看看是否能解决您的问题。

于 2014-04-17T08:14:10.003 回答