London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Episerver in Azure China Cloud

Vote:
0

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:
0

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:
0

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:
0

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.