访问斑点;不使用webrole?
-
26-09-2019 - |
题
我想KNW如果有,我们可以上传/下载一个blob的方式;添加不使用webrole移除视图元数据?如果我的应用程序有很多鬼的,shud会有多个webroles?我到处看webrole的文件default.aspx.cs有一切做与基于事件的斑点;这是完全正常的,但如果我的GUI是比较复杂的是什么?
解决方案
斑点都可以通过REST调用访问的,所以你其实可以与本地桌面应用程序操纵的斑点,如果你愿意的话,甚至用PHP编写或Java。
至于webroles:每个角色是简单地在某些服务器某处运行的虚拟机。网络的角色就像是辅助角色,添加IIS的。如果你有一个网站,你可以把一个webrole整个网站。如果你需要扩展它来处理更多的用户,您可以创建webrole的多个“实例” - 然后所有网站的请求被发送到不同的实例,每个实例运行相同的代码。 (是的,你可以有一个给定的应用程序多webroles - 这取决于你的网站的复杂性,这可能是实际的,或者如果你有管理员VS游客完全不同的UI)
。其他提示
您不需要使用Web角色访问Azure存储(BLOB或其他)。您可以使用一个辅助角色,或者你甚至可以从Windows窗体应用程序运行在桌面上,或Web /应用服务这是不是在Azure上运行访问它。
请参阅在Azure SDK的StorageClient文档信息如何获取Azure存储 - 这是很容易
您不需要Azure项目或其他角色使用的blob。如果你想使用Azure的客户端在.NET项目,您可以将您的配置添加到应用程序设置部分,引用它。 Azure的客户端是REST调用的包装。他们有一些要求签约步骤,这使得很难用简单的webrequests实现通话。
<add key="AzureBlobStorage" value="AccountName=youraccountname;AccountKey=YOURKEYeZgfgdfg==;DefaultEndpointsProtocol=https"/>
您可以得到BLOB客户端:
public CloudBlobClient GetBlobClient()
{
var accountBlob = ConfigurationManager.AppSettings["AzureBlobStorage"];
var account = CloudStorageAccount.Parse(accountBlob.ToString());
return account.CreateCloudBlobClient();
}
public CloudBlob GetBlob(BlobItem blobItem)
{
var client = GetBlobClient();
var cloudBlobContainer = client.GetContainerReference(blobItem.ContainerReference);
return cloudBlobContainer.GetBlobReference(blobItem.FileName);
}
BlobItem仅仅是一个包装。基本上,你需要的文件夹名和文件名来访问一个斑点。
public class BlobItem
{
[Required]
[Display(Name = "Container")]
public string ContainerReference { get; set; }
[Required]
[Display(Name = "File name")]
public string FileName { get; set; }
[Required]
[UIHint("MultilineText")]
public string Content { get; set; }
/// <summary>
/// to use in stream mode
/// </summary>
public Stream Stream { get; set; }
}