Friday, 22 November 2013

Resolution for Activation error occured while trying to get instance of type Autoscaler, key "" in Autoscaling ApplicationBlock (WASABi)

Issue:

When implementing  Autoscaling Application block(WASABi) by following the steps from below Microsoft link,

http://www.windowsazure.com/en-us/develop/net/how-to-guides/autoscaling/


you might face the error something like this.


Microsoft.Practices.ServiceLocation.ActivationException was unhandled
  HResult=-2146233088
  Message=Activation error occured while trying to get instance of type Autoscaler, key ""
  Source=Microsoft.Practices.ServiceLocation
  StackTrace:
       at Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:line 57
       at Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance[TService]() in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:line 90
       at AutoScallingHost.Program.Main(String[] args) in Program.cs:line 14
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: Microsoft.Practices.Unity.ResolutionFailedException
       HResult=-2146233088
       Message=Resolution of the dependency failed, type = "Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Autoscaler", name = "(none)".
Exception occurred while: Calling constructor Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Autoscaler(System.String dataPointsStoreStorageAccountConnectionString, System.String dataPointsTableName, System.TimeSpan ruleEvaluationRate, Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Rules.IRulesStore rulesStore, Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.ServiceModel.IServiceInformationStore serviceInformationStore, Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.DataPointsCollection.IDataPointsCollectorsProvider dataPointsCollectorsProvider, Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.IExecutionLease executionLease, Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Logging.ILogger logger, Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Scaling.IServiceManagementRequestTracker tracker, Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Scaling.IScaler scaler).
Exception is: FileLoadException - Could not load file or assembly 'Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)


The reason for the above exception is,  the two depedent assemblies "Microsoft.WindowsAzure.StorageClient" and "Microsoft.WindowsAzure.ServiceRuntime", looking for their old version of assembly.

To resolve that, you have to map dlls to old verison, by adding the below configuration in app.config file.




                  
   
 
   
     

Sunday, 13 October 2013

enterprise library 5.0 logging and caching DB creation with Azure SQL Database

Step 1:
Download  and install the Enterprise library Azure integration packages from the below link
http://www.microsoft.com/en-us/download/details.aspx?id=28189

Step 2:
During the installation of EnterpriseLibraryIntegrationPack-WindowsAzure-sqlscripts, Installer will ask you to provide the location to extract the sql scripts.

Step 3:
There are certain script files will be created in the installation location.
CreateCachingDatabase.sql
CreateCachingDatabaseObjects.sql
CreateLoggingDatabase.sql
CreateLoggingDatabaseObjects.sql
savemessages.vbs
savemessages1.vbs
savemsg.bat
savemsg1.bat

Step 4:
Open MS-SSMS 2012 and connect your Azure SQL DB and Run  SQL scripts. First run the create database scripts and then run the relevant Object sql script by right click and selecting the new query in the relevant Database.

Step 5:
After the successful run, you can see the below tables created in your Azure SQL database instance.
DB: Logging

  • Category
  • CategoryLog
  • Log


DB:Caching
  • CacheData
I Hope this will be useful for you.  if you have any suggestions or comment, Kindly add it.

Regards,
-Gopal