来自this MSDN article它表示连接到存储帐户的连接字符串必须是 HTTP而不是HTTPS 。
当我使用这个构造函数时:
public CloudDrive (
Uri uri,
StorageCredentials credentials
)
这是否意味着页面blob的 Uri 也必须是HTTP而不是HTTPS?关于哪个参数(或两者一起)符合“连接字符串”描述,我感到有点困惑。
这种情况在开发人员模式中似乎不易测试。
答案 0 :(得分:1)
页面blob的URI
(将其视为连接字符串的服务器部分)表示存储的命名空间+容器+ blob 帐户。 credentials
表示用户/通行证,它与URI
一起构成Azure云存储服务的连接字符串。
假设您正在使用本地模拟器,URI
将始终为HTTP。
CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
部署到Azure时,URI
方案将为whatever you assign it in the service configuration( ServiceDefinition.csdef / ServiceConfiguration.Cloud.cscfg )。
CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("CloudDrive.DataConnectionString");
您只想将CloudDrive.DataConnectionString
分配给DefaultEndpointsProtocol=http
(如果省略,默认值,但您可以明确)。
<ServiceDefinition>
<WebRole>
<!-- .... -->
<ConfigurationSettings>
<Setting name="CloudDrive.DataConnectionString" />
</ConfigurationSettings>
</WebRole>
</ServiceDefinition>
<ServiceConfiguration>
<Role>
<ConfigurationSettings>
<Setting name="CloudDrive.DataConnectionString" value="DefaultEndpointsProtocol=http;AccountName=YOURNAMESPACE;AccountKey=YOURKEY" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>