【问题标题】:ASP.net connection with blobASP.net 与 blob 的连接
【发布时间】:2017-09-07 10:03:20
【问题描述】:

如何在托管在 azure 和 Blob 上的 asp.net Web 应用程序之间创建连接? 当我将文件从本地主机上传到 blob 时,连接工作得很好。 但是当我在 azure 上发布 Web 应用程序时,该应用程序无法将文件存储在 blob 中。我能想到文件没有上传的唯一原因是托管的 asp.net Web 应用程序和 blob 之间存在某种连接问题

BlobStorageServices.cs

     public class BlobStorageServices
{
    public CloudBlobContainer GetCloudBlobContainer()
    {
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("ImageStorageAccountConn"));
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer blobContainer = blobClient.GetContainerReference("myimages");
        if (blobContainer.CreateIfNotExists())
        {
            blobContainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
        }
        return blobContainer;
    }
}

HomeController.cs

    BlobStorageServices _blobStorageService = new BlobStorageServices();
    [HttpPost]
    public ActionResult Upload(HttpPostedFileBase image)
    {
        if (image.ContentLength > 0)
        {
            CloudBlobContainer blobContainer = _blobStorageService.GetCloudBlobContainer();
            CloudBlockBlob blob = blobContainer.GetBlockBlobReference(image.FileName);
            blob.UploadFromStream(image.InputStream);
        }
        return RedirectToAction("Index");
    }

Index.cshtml

    <h2>Upload Image</h2>
    <p>
    @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <input type="file" name="image" />
        <input type="submit" value="Upload" />
    }
    </p>

当我们通过 Visual Studio 发布 asp.net 应用程序时,不确定 BlobStorageServices.cs 文件是否被上传到 azure。 ImageStorageAccountConn 是连接字符串。

【问题讨论】:

  • 这是在 web/worker 角色实例中运行的吗?还是虚拟机?还是Web App(应用服务)?你提到了网络应用,但你有一个电话给RoleEnvironment
  • 谢谢大卫。我删除了 RoleEnvironment,它现在可以工作了。自最近两天以来,我一直在为此苦苦挣扎。 ://

标签: asp.net azure asp.net-mvc-4 blob azure-blob-storage


【解决方案1】:

假设您实际使用的是 Web 应用程序(根据您的问题):您正在尝试使用 RoleEnvironment 对象来获取连接字符串。 RoleEnvironment 特定于经典云服务(网络/工作者角色实例)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    相关资源
    最近更新 更多