OpenXml and Unable to create mutex

10,796

Solution 1

I change application pool Identity to higher level account with full control access in IIS.

IIS> application pools>advanced setting>Identity (in process mode)>choose an account with higher access

Solution 2

It also seems that changing ApplicationPool's Identity to LocalSystem does not always help which was in my case with Windows Server 2009 R2. The strange thing is that it worked for about half a year since I have read this topic and fixed my problem with large OpenXML-based reports but several days ago it just stopped working.

So after a day of research I found that additionally in ApplicationPool's Advanced Settings set Load User Profile to True (default value was False) and no problems again.

Solution 3

I agree with @Behrooz, change the the ApplicationPool's Identity to LocalSystem and it will work.

I didn't have this problem when the project was running on my PC's local host, but I did when I deployed it to the Server..

See this screenshot:

enter image description here

Share:
10,796
Behrooz
Author by

Behrooz

Updated on June 04, 2022

Comments

  • Behrooz
    Behrooz almost 2 years

    I tried to create Excel document through openXml lib, but when i wanna create Excel from large number of data, server shoe me Unable to create mutex. (Exception from HRESULT: 0x80131464) error, the stack trace is :

    [IsolatedStorageException: Unable to create mutex. (Exception from HRESULT: 0x80131464)]
       System.IO.IsolatedStorage.IsolatedStorageFile.Open(String infoFile, String syncName) +0
       System.IO.IsolatedStorage.IsolatedStorageFile.Lock(Boolean& locked) +370
       System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, IsolatedStorageFile isf) +468
       System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, IsolatedStorageFile isf) +35
       MS.Internal.IO.Packaging.SafeIsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, ReliableIsolatedStorageFileFolder folder) +102
       MS.Internal.IO.Packaging.PackagingUtilities.CreateUserScopedIsolatedStorageFileStreamWithRandomName(Int32 retryCount, String& fileName) +276
       MS.Internal.IO.Packaging.SparseMemoryStream.EnsureIsolatedStoreStream() +31
       MS.Internal.IO.Packaging.SparseMemoryStream.SwitchModeIfNecessary() +400
       MS.Internal.IO.Packaging.CompressEmulationStream.Write(Byte[] buffer, Int32 offset, Int32 count) +76
       MS.Internal.IO.Packaging.CompressStream.Write(Byte[] buffer, Int32 offset, Int32 count) +431
       MS.Internal.IO.Zip.ProgressiveCrcCalculatingStream.Write(Byte[] buffer, Int32 offset, Int32 count) +177
       MS.Internal.IO.Zip.ZipIOModeEnforcingStream.Write(Byte[] buffer, Int32 offset, Int32 count) +130
       System.Xml.XmlUtf8RawTextWriter.FlushBuffer() +7519035
       System.Xml.XmlUtf8RawTextWriter.RawText(Char* pSrcBegin, Char* pSrcEnd) +232
       System.Xml.XmlUtf8RawTextWriter.WriteStartElement(String prefix, String localName, String ns) +192
       System.Xml.XmlWellFormedWriter.WriteStartElement(String prefix, String localName, String ns) +7517920
       DocumentFormat.OpenXml.OpenXmlElement.WriteTo(XmlWriter xmlWriter) +283
       DocumentFormat.OpenXml.OpenXmlCompositeElement.WriteContentTo(XmlWriter w) +114
       DocumentFormat.OpenXml.OpenXmlElement.WriteTo(XmlWriter xmlWriter) +316
       DocumentFormat.OpenXml.OpenXmlCompositeElement.WriteContentTo(XmlWriter w) +114
       DocumentFormat.OpenXml.OpenXmlPartRootElement.WriteTo(XmlWriter xmlWriter) +404
       DocumentFormat.OpenXml.OpenXmlPartRootElement.SaveToPart(OpenXmlPart openXmlPart) +217
       DocumentFormat.OpenXml.Packaging.OpenXmlPackage.SavePartContents() +203
       DocumentFormat.OpenXml.Packaging.OpenXmlPackage.Dispose(Boolean disposing) +32
       DocumentFormat.OpenXml.Packaging.OpenXmlPackage.Dispose() +24
       Yara.Evento.Utility.Office.Excel.Write.Do(List`1 objects, String sheetName, HeaderList headerNames) +2371
       Yara.Evento.Management.Web.Controllers.TicketController.List(String button, Nullable`1 page, String startDate, String endDate, String ownerMail, String eventName, String mobile, String eMail, String ticketCode, Int32 sort, Boolean desc, Int32 eventId, Int32 status, Int32 variantId) +13628
       lambda_method(Closure , ControllerBase , Object[] ) +864
       System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
       System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
       System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +124
       System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +726390
       System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +309
       System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +726324
       System.Web.Mvc.Controller.ExecuteCore() +159
       System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +334
       System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
       System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +15
       System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +52
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288
    
  • Ankur Gupta
    Ankur Gupta over 8 years
    but i am not able to access production server IIS setting then how i can solve this problem
  • Vikram Shetty
    Vikram Shetty over 8 years
    Details on what Load User Profile @ blogs.msdn.microsoft.com/vijaysk/2009/03/08/… and also @ iis.net/learn/manage/configuring-security/… It creates a user profile using the name of application pool. It contains the path of C:\Users\<app-pool-name>\AppData\Local\IsolatedStorage\ This Solved my problem
  • Vikram Shetty
    Vikram Shetty over 8 years
    I did not prefer the accepted answer because It requires running IIS with elevated permissions which is a security weakness.
  • Vikram Shetty
    Vikram Shetty over 8 years
    I did not prefer the accepted answer because It requires running IIS with elevated permissions which is a security weakness, so I have down votes this question.
  • Chad Wilkin
    Chad Wilkin over 7 years
    For me I have my Identity set to ApplicationPoolIdentity and once I changed Load User Profile to True everything worked.
  • Gxzzin
    Gxzzin almost 3 years
    This solve the issue and I think it should be the accepted answer.