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.
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.
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.
User contributions licensed under CC BY-SA 3.0