小编Han*_*nno的帖子

如何在Azure中存储审核数据

我们正处于设计阶段,用于在现有Web应用程序中构建审核跟踪。该应用程序在Windows Azure上运行,并使用SQL Azure数据库。

审核日志必须按用户或对象类型过滤(例如,显示用户的所有操作,或显示对对象执行的所有操作)。

我们必须选择如何存储数据,应该使用SQL Azure还是应该使用表存储?我们更喜欢表存储(更便宜​​)。

但是,表存储的“问题”是如何定义分区键。我们的SQL数据库中有数千名客户(应用程序用户),每个客户都有自己的租户。使用租户ID作为分区键还不够具体,因此我们必须在分区键中添加一些内容。因此存在一个问题:给定过滤要求,我们可以在分区键中添加用户ID以简化用户过滤,或者可以添加对象ID以简化按对象过滤。

因此,我们看到两种可能的解决方案:
-使用SQL Azure代替表存储
-使用表存储并使用具有不同分区键的两个表,这意味着我们复制了所有条目

有什么想法对我们的情况最好的方法是什么?还有其他更好的解决方案吗?

auditing azure audit-trail azure-storage azure-sql-database

5
推荐指数
1
解决办法
1088
查看次数

Cloud Explorer中未显示开发存储

本周我重新安装了我的开发PC,现在我错过了Cloud Explorer中的本地开发存储(存储模拟器正在运行).现在只有Data Lake Analytics,我不需要.

在此输入图像描述

这一直都很好,比单独的Storage Explorer工具要好得多,因为在该工具中,您必须先登录现有的Azure订阅,然后才能选择开发存储.是否可能缺少需要安装VS2017的某些组件?

azure-storage-emulator visual-studio-2017

5
推荐指数
1
解决办法
267
查看次数

使用 AutoFac 和 AutoMock 模拟 CloudBlobClient

我正在尝试为我的 AzureBlobRepository 编写单元测试。存储库在构造函数中接收一个 CloubBlobClient。我想模拟客户端,但这给出了一个例外:

using (var mock = AutoMock.GetLoose())
{
    var mockClient = mock.Mock<CloudBlobClient>();
}
Run Code Online (Sandbox Code Playgroud)

无法在类型为“Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient”的多个长度为 2 的构造函数之间进行选择。在注册组件时,使用 UsingConstructor() 配置方法显式选择构造函数。

当然,在我的单元测试中,我没有注册任何东西,因此该消息不是很有帮助。

我还尝试了其他方法,例如提供 NameParameters、TypedParameters 或调用 mock.Create 代替 mock.Mock,但我尝试的所有方法都返回相同的异常消息。

(同样的问题也出现在 CloudBlobContainer 上)

此处实现接口后的 UPDATE 是我编写的单元测试示例:

[TestMethod]
public void AzureBlobRepository_GetByIdAsync_ReturnsContent()
{    
    Guid blobId = Guid.NewGuid();
    Guid directoryName = Guid.NewGuid();
    string containerName = "unittest";

    using (var mock = AutoMock.GetLoose())
    {
        var mockClient = mock.Mock<ICloudBlobClient>();
        var mockContainer = mock.Mock<ICloudBlobContainer>();
        var mockDirectory = mock.Mock<ICloudBlobDirectory>();
        // notice that we're not using AutoMock here, it fails to create …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq autofac azure-storage-blobs

4
推荐指数
1
解决办法
5600
查看次数