Search code examples
azureazure-storageazure-blob-storageepiserver

Migrating EPiserver media blobs to Azure Storage Account


I am currently researching into migrating the EPiServer 11.10.1 media blobs from a Windows DFS Share to an Azure Storage Account.

The configuration tried is as follows:

web.config (Note: only relevant sections are shown)

<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 (Note: only relevant sections are shown)

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

When starting the site, the following error is shown in the logs:

(Note: only relevant sections are shown)

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.

I am unable to see an error which would be causing the media blob (image) not to be displayed.

The following has been tried already but to no avail:

  • Permissions: Azure Storage Account - Blobs - Contain (anonymous read access for containers and blobs)
  • Permissions: The media blob (images) are accessible in a browser independent of the EpiServer platform
  • Microsoft Support has confirmed there are no known issues affecting the Storage Account

If this makes a difference, EpiServer itself is running on a dedicated VM (IaaS) and using Azure SQL for databases.

  • Does appData basePath="" need to contain a value to work with an Azure Storage Account?

Any suggestions on what might be (or what I am doing) wrong are welcome.

Thank you.


Solution

  • Thank you for your proposed answer Ted but the solution was more straightforward. I posted a similar question to the official EPiServer forums:

    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/

    It was simply a matter of adding the suffix to the connection string:

    ;EndpointSuffix=core.windows.net
    

    However, I did read similar suggestions to what you answered whilst researching, so I think it will be of benefit to users Googling a similar problem for your answer to be upvoted.