Provider type 'EPiServer.Azure.Events.AzureEventProvider,EPiServer.Azure' could not be loaded. - Install

Vote:
 

Hi Guys,

I started a new Azure install of the latest version. I followed the directions on this link   https://world.episerver.com/documentation/developer-guides/CMS/Deployment/deployment-scenarios/Deploying-to-Azure-webapps/

The project was deployed to Azure Web App successfully.  But, when I goto the URL I get the error below.

Server Error in '/' Application.

Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Provider type 'EPiServer.Azure.Events.AzureEventProvider,EPiServer.Azure' could not be loaded.

Source Error: 

An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.


Source File: D:\home\site\wwwroot\web.config    Line: 292 

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.2623.0

I checked the Event provider setting and it seems fine.

Any ideas?

Thanks,

Min

#194224
Jun 16, 2018 11:33
Vote:
 

Can you turn off the customError setting to get the full error message ?

#194225
Jun 16, 2018 12:15
Vote:
 

Yes, I did.  That is the message after turning off the custom error message. 

#194228
Jun 16, 2018 17:51
Vote:
 

This is the error that I get on the Azure Webapp logs.

</head> 
<body> 
<div id="content"> 
<div class="content-container"> 
<h3>HTTP Error 500.0 - Internal Server Error</h3> 
<h4>The page cannot be displayed because an internal server error has occurred.</h4> 
</div> 
<div class="content-container"> 
<fieldset><h4>Most likely causes:</h4> 
<ul> 	<li>IIS received the request; however, an internal error occurred during the processing of the request. The root cause of this error depends on which module handles the request and what was happening in the worker process when this error occurred.</li> 	<li>IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.</li> 	<li>IIS was not able to process configuration for the Web site or application.</li> 	<li>The authenticated user does not have permission to use this DLL.</li> 	<li>The request is mapped to a managed handler but the .NET Extensibility Feature is not installed.</li> </ul> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><h4>Things you can try:</h4> 
<ul> 	<li>Ensure that the NTFS permissions for the web.config file are correct and allow access to the Web server's machine account.</li> 	<li>Check the event logs to see if any additional information was logged.</li> 	<li>Verify the permissions for the DLL.</li> 	<li>Install the .NET Extensibility feature if the request is mapped to a managed handler.</li> 	<li>Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul> 
</fieldset> 
</div> 
 
<div class="content-container"> 
<fieldset><h4>Detailed Error Information:</h4> 
<div id="details-left"> 
<table border="0" cellpadding="0" cellspacing="0"> 
<tr class="alt"><th>Module</th><td>&nbsp;&nbsp;&nbsp;AspNetInitializationExceptionModule</td></tr> 
<tr><th>Notification</th><td>&nbsp;&nbsp;&nbsp;BeginRequest</td></tr> 
<tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;ExtensionlessUrlHandler-Integrated-4.0</td></tr> 
<tr><th>Error Code</th><td>&nbsp;&nbsp;&nbsp;0x00000000</td></tr> 
 
</table> 
</div> 
<div id="details-right"> 
<table border="0" cellpadding="0" cellspacing="0"> 
<tr class="alt"><th>Requested URL</th><td>&nbsp;&nbsp;&nbsp;https://kvctraining:80/</td></tr> 
<tr><th>Physical Path</th><td>&nbsp;&nbsp;&nbsp;D:\home\site\wwwroot</td></tr> 
<tr class="alt"><th>Logon Method</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr> 
<tr><th>Logon User</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr> 
 
</table> 
<div class="clear"></div> 
</div> 
</fieldset> 
</div> 
 
<div class="content-container"> 
<fieldset><h4>More Information:</h4> 
This error means that there was a problem while processing the request. The request was received by the Web server, but during processing a fatal error occurred, causing the 500 error. 
<p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=500,0,0x00000000,14393">View more information &raquo;</a></p> 
<p>Microsoft Knowledge Base Articles:</p> 
</div> 

#194229
Jun 16, 2018 19:35
Vote:
 

Just to make sure, did you configure your ServiceBus account and have proper setting in connectionStrings ?

<add name="EPiServerAzureEvents" connectionString="Endpoint=sb://ChangeThis.servicebus.windows.net/;SharedAccessKeyName=ChangeThis;SharedAccessKey=ChangeThis" />
#194232
Jun 16, 2018 20:23
Vote:
 

Hi Quan,


Yes.  I added the connectionStrings per the instructions from the strings from the Azure console.

I enabled logging on the WebApp and I got this.  It said something about file permission for Web.config.  Looking at more, I see in Kuzu that the Web.config is there.  

018-06-16T17:20:53  Welcome, you are now connected to log-streaming service.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>IIS Detailed Error - 500.0 - Internal Server Error</title> 

 
</head> 
<body> 
<div id="content"> 
<div class="content-container"> 
<h3>HTTP Error 500.0 - Internal Server Error</h3> 
<h4>The page cannot be displayed because an internal server error has occurred.</h4> 
</div> 
<div class="content-container"> 
<fieldset><h4>Most likely causes:</h4> 
<ul> 	<li>IIS received the request; however, an internal error occurred during the processing of the request. The root cause of this error depends on which module handles the request and what was happening in the worker process when this error occurred.</li> 	<li>IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.</li> 	<li>IIS was not able to process configuration for the Web site or application.</li> 	<li>The authenticated user does not have permission to use this DLL.</li> 	<li>The request is mapped to a managed handler but the .NET Extensibility Feature is not installed.</li> </ul> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><h4>Things you can try:</h4> 
<ul> 	<li>Ensure that the NTFS permissions for the web.config file are correct and allow access to the Web server's machine account.</li> 	<li>Check the event logs to see if any additional information was logged.</li> 	<li>Verify the permissions for the DLL.</li> 	<li>Install the .NET Extensibility feature if the request is mapped to a managed handler.</li> 	<li>Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul> 
</fieldset> 
</div> 
 
<div class="content-container"> 
<fieldset><h4>Detailed Error Information:</h4> 
<div id="details-left"> 
<table border="0" cellpadding="0" cellspacing="0"> 
<tr class="alt"><th>Module</th><td>&nbsp;&nbsp;&nbsp;AspNetInitializationExceptionModule</td></tr> 
<tr><th>Notification</th><td>&nbsp;&nbsp;&nbsp;BeginRequest</td></tr> 
<tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;ExtensionlessUrlHandler-Integrated-4.0</td></tr> 
<tr><th>Error Code</th><td>&nbsp;&nbsp;&nbsp;0x00000000</td></tr> 
 
</table> 
</div> 
<div id="details-right"> 
<table border="0" cellpadding="0" cellspacing="0"> 
<tr class="alt"><th>Requested URL</th><td>&nbsp;&nbsp;&nbsp;https://kvctraining:80/</td></tr> 
<tr><th>Physical Path</th><td>&nbsp;&nbsp;&nbsp;D:\home\site\wwwroot</td></tr> 
<tr class="alt"><th>Logon Method</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr> 
<tr><th>Logon User</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr> 
 
</table> 
<div class="clear"></div> 
</div> 
</fieldset> 
</div> 
 
<div class="content-container"> 
<fieldset><h4>More Information:</h4> 
This error means that there was a problem while processing the request. The request was received by the Web server, but during processing a fatal error occurred, causing the 500 error. 
<p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=500,0,0x00000000,14393">View more information &raquo;</a></p> 
<p>Microsoft Knowledge Base Articles:</p> 
  
 
</fieldset> 
</div> 
</div> 
</body> 
#194233
Jun 16, 2018 20:50
Vote:
 

Ok, I figured out the root cause.  But I still need help with the Azure Blob and Events setting.  In step 3, #1.  

https://world.episerver.com/documentation/developer-guides/CMS/Deployment/deployment-scenarios/Deploying-to-Azure-webapps/

3. Updating the configuration

Next you need to change some configurations for the website to work with Azure. 

Note: Do not skip this step! If you do, assets are stored locally, and will not deploy properly to the Azure Blob storage.

  1. Map BLOB and event providers.

    Open web.config and add the following configuration under the episerver.framework section to map BLOB and event providers to Azure. 

No matter where I place the two settings with my values, the App will not come up.  But as soon as I comment them out the App comes up.  


Where should I be putting the two settings?  My Web.config is below. 

<blob defaultProvider="azureblobs">
  <providers>
    <add name="azureblobs" type="EPiServer.Azure.Blobs.AzureBlobProvider,EPiServer.Azure" 
      connectionStringName="EPiServerAzureBlobs" container="mysitemedia"/>
  </providers>
</blob>
<event defaultProvider="azureevents">
  <providers>
    <add name="azureevents" type="EPiServer.Azure.Events.AzureEventProvider,EPiServer.Azure" 
      connectionStringName="EPiServerAzureEvents" topic="MySiteEvents"/>
  </providers>
</event>

My Web.config

<episerver.framework>

    <appData basePath="App_Data" />

    <scanAssembly forceBinFolderScan="true" />

    <virtualRoles addClaims="true">

      <providers>

        <add name="Administrators" type="EPiServer.Security.WindowsAdministratorsRole, EPiServer.Framework" />

        <add name="Everyone" type="EPiServer.Security.EveryoneRole, EPiServer.Framework" />

        <add name="Authenticated" type="EPiServer.Security.AuthenticatedRole, EPiServer.Framework" />

        <add name="Anonymous" type="EPiServer.Security.AnonymousRole, EPiServer.Framework" />

        <add name="CmsAdmins" type="EPiServer.Security.MappedRole, EPiServer.Framework" roles="WebAdmins, Administrators" mode="Any" />

        <add name="CmsEditors" type="EPiServer.Security.MappedRole, EPiServer.Framework" roles="WebEditors" mode="Any" />

        <add name="Creator" type="EPiServer.Security.CreatorRole, EPiServer" />

      </providers>

    </virtualRoles>

    <virtualPathProviders>

      <clear />

      <add name="ProtectedModules" virtualPath="~/EPiServer/" physicalPath="Modules\_Protected" type="EPiServer.Web.Hosting.VirtualPathNonUnifiedProvider, EPiServer.Framework.AspNet" />

    </virtualPathProviders>

    <geolocation defaultProvider="maxmind">

      <providers>

        <add name="maxmind" type="EPiServer.Personalization.Providers.MaxMind.GeolocationProvider, EPiServer.ApplicationModules" databaseFileName="App_Data\GeoLiteCity.dat" />

      </providers>

    </geolocation>

  <localization fallbackBehavior="Echo, MissingMessage, FallbackCulture" fallbackCulture="en">

      <providers>

        <add virtualPath="~/Resources/LanguageFiles" name="languageFiles" type="EPiServer.Framework.Localization.XmlResources.FileXmlLocalizationProvider, EPiServer.Framework.AspNet" />

      </providers>

    </localization>

    <!-- Added For Azure Blobs and Service Bus -->

      <!--<blob defaultProvider="azureblobs">

        <providers>

        <add name="azureblobs" type="EPiServer.Azure.Blobs.AzureBlobProvider,EPiServer.Azure"         connectionStringName="DefaultEndpointsProtocol=https;AccountName=kvctraining;AccountKey=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz==;EndpointSuffix=core.windows.net" container="kvctrainingmedia"/>

        </providers>

      </blob> -->

      <!-- <event defaultProvider="azureevents">

        <providers>

          <add name="azureevents" type="EPiServer.Azure.Events.AzureEventProvider,EPiServer.Azure"       connectionStringName="Endpoint=sb://kvctraining.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=" topic="kvctrainingevents"/>

          </providers>

      </event> -->

  </episerver.framework>

#194234
Jun 17, 2018 1:21
Vote:
 

Sorry, I know I am late to the party here...Hope it helps someone who comes looking for an answer in the future...

Install EPiServer.Azure nuget package & publish.

#208215
Oct 17, 2019 16:42
Quan Mai - Oct 17, 2019 17:02
It is the step 4 in https://world.episerver.com/documentation/developer-guides/CMS/Deployment/deployment-scenarios/Deploying-to-Azure-webapps/, btw
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.