C# Azure Blob共享SAS时间窗口

C# Azure Blob共享SAS时间窗口,c#,asp.net,azure,azure-storage-blobs,C#,Asp.net,Azure,Azure Storage Blobs,我尝试使用以下代码共享blob一分钟: public static void CdnInit() { StorageAccount = CloudStorageAccount.Parse(ConnectionString); BlobClient = StorageAccount.CreateCloudBlobClient(); } public static string GetSharedBlobUrl(ContainerTy

我尝试使用以下代码共享blob一分钟:

    public static void CdnInit()
    {
        StorageAccount = CloudStorageAccount.Parse(ConnectionString);
        BlobClient = StorageAccount.CreateCloudBlobClient();
    }

    public static string GetSharedBlobUrl(ContainerType conteiner, string fileName)
    {
        CloudBlob blob = BlobClient.GetBlobReference(containerNameByType(conteiner) + @"/" + fileName);
        return StorageUrl + "/" + containerNameByType(conteiner) + "/" + fileName + blob.GetSharedAccessSignature(new SharedAccessPolicy()
        {
            Permissions = SharedAccessPermissions.Read,
            SharedAccessExpiryTime = DateTime.UtcNow + TimeSpan.FromMinutes(1)
        });

    }
但重定向到生成的url时出现以下错误:

没有签名标识符的访问时间窗口不能超过1小时


我尝试了许多时间组合,但结果相同。

尝试使用DateTime。现在取代DateTime.UtcNow,这就是问题所在。UtcNow根据格林尼治标准时间给出日期,根据当地时间,可能超过1小时。

这是错误的答案。在Windows Azure中,所有内容都以UTC/GMT为单位,因此日期/时间必须始终以UTC为单位。哎呀,是的,我的错,我当然读到了以下结果SAS URL将在查询参数中为您提供过期时间。它显示的有效期是多少?从现在起是否超过1小时?可能是您的本地机器(运行此代码的地方)提前一小时运行吗?我机器上的时间设置不正确。谢谢你的指点!