November Happy Hour will be moved to Thursday December 5th.

Episerver in Azure China Cloud

Vote:
 

Am trying to deploy Episerver in Azure China Cloud and ended up in a Problem

 

It looks like the Episerver Nuget Packages for Azure blob/sql/servicebus providers are configured to only connect to Global Azure Endpoints

 

For Example : Connection is Possible to Global Azure Storage Endpoint *blob.core.windows.net but not to Azure China Cloud Which is  *blob.core.windows.cn.. similarly for other endpoints like azure sql and service bus :(

 

Is there a way I can over-ride these default endpoints ?

 

 

 

 

Below is the exception from the WebApp event log

 

Exception has been thrown by the target of an invocation. at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture) at System.Web.HttpRuntime.CreateNonPublicInstance(Type type, Object[] args) at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) Exception has been thrown by the target of an invocation. at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Delegate.DynamicInvokeImpl(Object[] args) at EPiServer.Framework.Initialization.InitializationEngine.OnInitComplete() at EPiServer.Framework.Initialization.InitializationEngine.ExecuteTransition(Boolean continueTransitions) at EPiServer.Framework.Initialization.InitializationEngine.Initialize() at EPiServer.Framework.Initialization.InitializationModule.<>c.b__7_0(InitializationEngine e) at EPiServer.Framework.Initialization.InitializationModule.EngineExecute(HostType hostType, Action`1 engineAction) at EPiServer.Framework.Initialization.InitializationModule.FrameworkInitialization(HostType hostType) at EPiServer.Global..ctor() at ASP.global_asax..ctor() One or more errors occurred. at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at EPiServer.Framework.FrameworkInitialization.<>c__DisplayClass2_0.b__0(Object o, EventArgs e) The remote name could not be resolved: 'agrifirmgrpcmsqa.blob.core.windows.net' at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.Exists(Boolean primaryOnly, BlobRequestOptions requestOptions, OperationContext operationContext) at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.Exists(BlobRequestOptions requestOptions, OperationContext operationContext) at EPiServer.Azure.Blobs.DefaultAzureBlobContainer.CreateIfNotExist() at EPiServer.Azure.Blobs.AzureBlobProvider.b__11_0() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() The remote name could not be resolved: 'agrifirmgrpcmsqa.blob.core.windows.net' at System.Net.HttpWebRequest.GetResponse() at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext)

 

#190657
Apr 13, 2018 18:00
Vote:
 

Does your connection string for storage have them set specifically?

BlobEndpoint=https://x;
FileEndpoint=https://x;
QueueEndpoint=https://x;
TableEndpoint=https://x;
#190667
Apr 14, 2018 14:14
Vote:
 

Yes. It's set explicity - but the syntax is never a FQDN but something like this DefaultEndpointsProtocol=http;AccountName=devstoreaccount1; AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;

But Azure SQL Database Connection String which syntactically has a FQDN also does not work .. but everything starts magically working once i change them to point to a endpoint in Global Azure ( Outside Azure China )

#190668
Apr 14, 2018 14:20
Vote:
 

I assumed the entries a I posted should be part of your connectionstring. In the example you provide the connection string would be:

"BlobEndpoint=https://devstoreaccount1.blob.core.windows.cn;QueueEndpoint=https://devstoreaccount1.queue.core.windows.cn;
TableEndpoint=https://devstoreaccount1.table.core.core.windows.cn;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;"

Is that what you have?

#190670
Apr 14, 2018 14:42
* 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.