Enable 32-Bit Required In Only One of Three Environments for the Same Website

0

We have three environments (DEV, QA, PROD).

Each environment has two IIS web servers.

We got the following run time error on PROD only:

Server Error in '/' Application.

Unable to determine granted permission for assembly. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details:

System.IO.IsolatedStorage.IsolatedStorageException: Unable to determine granted permission for assembly.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace:

[IsolatedStorageException: Unable to determine granted permission for assembly.]
  System.IO.IsolatedStorage.IsolatedStorage.InitStore(IsolatedStorageScope scope, Type domainEvidenceType, Type assemblyEvidenceType) +510
   System.IO.IsolatedStorage.IsolatedStorageFile.GetStore(IsolatedStorageScope scope, Type domainEvidenceType, Type assemblyEvidenceType) +77
   System.Lazy`1.CreateValue() +740
   System.Lazy`1.LazyInitValue() +372
   Cassette.Aspnet.ForAssembly.get_IsolatedStorageFile() +25
   Cassette.IO.IsolatedStorageFile.get_Storage() +15
   Cassette.IO.IsolatedStorageFile.get_Exists() +16
   Cassette.Aspnet.WebHostSettingsConfiguration.IsStaticCacheManifest(CassetteSettings settings) +86
   Cassette.Aspnet.WebHostSettingsConfiguration.Configure(CassetteSettings settings) +275
   Cassette.ConfigurationEnumerableExtensions.Configure(IEnumerable`1 configurations, T configurable) +176

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +394
   System.Reflection.ConstructorInfo.Invoke(Object[] parameters) +35
   Cassette.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) +677

[TinyIoCResolutionException: Unable to resolve type: Cassette.CassetteSettings]
   Cassette.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) +1044
   Cassette.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, ResolveOptions options) +63
   Cassette.TinyIoC.SingletonFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) +145
   Cassette.TinyIoC.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) +1349
   Cassette.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) +552

[TinyIoCResolutionException: Unable to resolve type: Cassette.FileSystemWatchingBundleRebuilder]
   Cassette.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) +852
   Cassette.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, ResolveOptions options) +63
   Cassette.TinyIoC.SingletonFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) +145
   Cassette.TinyIoC.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) +1349
   System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +265
   System.Linq.<CastIterator>d__b1`1.MoveNext() +296
   Cassette.HostBase.RunStartUpTasks() +234
   Cassette.HostBase.Initialize() +188
   Cassette.Aspnet.CassetteHttpModule.InitWithTraceLogging() +73
   Cassette.Aspnet.CassetteHttpModule.Init(HttpApplication httpApplication) +120
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +597
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +203
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +313
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +250

[HttpException (0x80004005): Unable to resolve type: Cassette.FileSystemWatchingBundleRebuilder]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +452
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +99
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +669

We were able to fix that PROD run time error by setting "Enable 32-Bit Applications" to "True" for the app pool.

enter image description here

What we are trying to figure out now, is why we had to make that change on both PROD IIS Servers and not the DEV or QA servers.

iis
asp.net
32bit-64bit
32-bit
asked on Server Fault Apr 28, 2017 by ADH

1 Answer

0

I think because in DEV and QA you have possibly visual studio installed that works with 32/64 bits cores so all that is automatically configured for you in IISExpress and in a testing environment. In production, you have to do it manually.

answered on Server Fault Apr 28, 2017 by Jose Ortega

User contributions licensed under CC BY-SA 3.0