将EPiserver媒体Blob迁移到Azure存储帐户

时间:2019-02-19 13:50:48

标签: azure azure-storage azure-storage-blobs episerver

我目前正在研究将EPiServer 11.10.1媒体Blob从Windows DFS共享迁移到Azure存储帐户。

尝试的配置如下:

web.config(注意:仅显示相关部分)

<dependentAssembly>
<assemblyIdentity name="EPiServer.Azure" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.4.4.0" newVersion="9.4.4.0" />
</dependentAssembly>

<episerver.framework updateDatabaseSchema="false">
<clientResources debug="false" />
<appData basePath="" />
<scanAssembly forceBinFolderScan="true" />

<blob defaultProvider="azureblobs">
<providers>
<add name="azureblobs" type="EPiServer.Azure.Blobs.AzureBlobProvider,EPiServer.Azure" connectionStringName="EPiServerAzureBlobs" container="mycontainer"/>
</providers>
</blob>

connectionStrings.config(注意:仅显示相关部分)

<connectionStrings>
<clear />
<add name="EPiServerAzureBlobs" connectionString="DefaultEndpointsProtocol=https;AccountName=storage00001;AccountKey=NuJBkcpuCbPKH+lcw65OwELkJ1nptJ7CY2Hn4MqNwqwL4WY4C3caSSSJYgH91J6MH9qZPPOOSbAzFZrNk8eIHt6PA==" />
</connectionStrings>

启动站点时,日志中显示以下错误:

(注意:仅显示相关部分)

2019-02-19 13:12:41,875 [94] [94a2e50f-06c6-4ddc-a6f7-2d1c43b0735d] ERROR 
EPiServer.Global: Unhandled exception in ASP.NET
Microsoft.WindowsAzure.Storage.StorageException: The remote server returned 
an error: (404) Not Found. ---> System.Net.WebException: The remote server 
returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
Request Information
RequestID:5e731c27-d01e-00cc-4254
RequestDate:Tue, 19 Feb 2019 13:12:41 GMT
StatusMessage:The specified blob does not exist.

我看不到错误,该错误将导致无法显示媒体斑点(图像)。

以下内容已尝试过,但无济于事:

  • 权限:Azure存储帐户-Blob-包含(容器和Blob的匿名读取访问权限)
  • 权限:可以在独立于EpiServer平台的浏览器中访问媒体Blob(图像)
  • Microsoft支持已确认没有影响存储帐户的已知问题

如果有所作为,则EpiServer本身正在专用VM(IaaS)上运行,并且将Azure SQL用于数据库。

  • appData basePath =“”是否需要包含一个值才能使用Azure存储帐户?

欢迎提出任何关于可能(或我在做什么)错误的建议。

谢谢。

2 个答案:

答案 0 :(得分:2)

谢谢您提出的答案Ted,但解决方案更简单。我在官方的EPiServer论坛上发布了一个类似的问题:

https://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2019/2/migrating-to-azure-storage-accounts-media-blob---image---not-displayed-in-browser/

只需在连接字符串中添加后缀即可。

;EndpointSuffix=core.windows.net

但是,在研究过程中,我确实阅读了与您回答的建议类似的建议,因此我认为对谷歌搜索类似问题以使您的回答得到认可将有益于用户。

答案 1 :(得分:0)

404的原因是您更改了Blob提供程序而未迁移实际的Blob。因此,当请求现有的Blob(在Episerver数据库中引用)时,将不再找到它。

您可能也对此处提到的blob转换器程序包感兴趣:How to move blobs from App_Data folder of episerver cms site to azure blob storage hosted in azure cloud