从本地IIS应用程序访问Azure Blob存储

时间:2014-10-11 20:28:32

标签: asp.net .net iis azure azure-storage-blobs

我有一个内部.NET / IIS应用程序,我已经开发了新功能,允许用户将图像上传到Azure Blob存储。在我的开发环境中一切正常,现在我已准备好将此应用程序部署到我的生产环境中。

我无法弄清楚如何做到这一点。可能吗?如果是这样,我该怎么做?

更多细节:

  • 我的环境是运行IIS 7.5的Windows Server 2008 R2
  • 该服务连接到云中的实际Azure Blob存储,我可以在线保存图像(即,我在Azure门户上登录我的帐户,我可以在我的测试容器中看到上传的图像)环境(使用IIS Express的VS 2013)使用Azure SDK 3.3中的Azure开发计算/存储模拟器。
  • 我无法使用IIS 7.5在我的开发箱上运行解决方案。
  • 我试过"部署"来自" Build"的解决方案在我的解决方案菜单,但没有任何反应。试图"发布"我的解决方案中的Cloud Service Project将我带到Azure以在线发布。这是让我的解决方案有效的必要条件吗?发布Cloud Service项目?

感谢。

2 个答案:

答案 0 :(得分:0)

如果您拥有的是您在本地部署的Web应用程序,则不应使用Cloud Service项目(最终部署为Azure Cloud Service的项目)。如果你想在web服务器上进行blob上传,你只需要将Azure Storage NuGet package添加到你的web项目中并使用存储库上传blob(假设你已经有了这样的代码,因为你说的东西正在开发你的开发盒。)

答案 1 :(得分:0)

我认为我的问题的答案基本上是完全忽略云服务项目,只是像通常部署它一样部署底层网站,只需稍作修改即可。

  1. 在您的Web.config文件中添加Azure Blob连接字符串,以便您可以从项目中访问它,而无需引用云存储帐户设置(即CloudConfigurationManager.GetSetting等)。
  2. 在您的Web.config文件中,注释掉AzureDiagnostics跟踪侦听器:

      <listeners>
    <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
      <filter type="" />
    </add>
    

  3. 使用这两个修改,我能够将我的底层网站部署到我的本地IIS,同时仍然从我的本地解决方案访问Azure Blob存储。

    我仍然不完全确定我是否曾经需要或者仍然需要我的解决方案中的云服务项目,但我现在仍然保留它。

    希望这个问题/答案可以帮助其他人在混合内部部署和Azure解决方案上搜索文档,因为在这个问题上似乎几乎没有任何内容。