+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

DLLs werden von w3wp Prozess blockiert

Hallo zusammen!
Bisher haben wir LL nur in einem Windows Dienst eingesetzt.
Nun wollten wir den Teil Richtung IIS verlagern.

Windows 2019 Datacenter, IIS 10, VB .NET 4.8
LL 25.2020.11608

Nach dem Exportieren eines PDFs werden jedoch einige DLLs im WWW Verzeichnis (/bin) von w3wp blockiert. Die Dateien lassen sich nur löschen, wenn der IIS Prozess beendet wird.

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       07.10.2020     16:38        3812840 cxBR25.dll
-a----       07.10.2020     16:38        3806696 cxCT25.dll
-a----       07.10.2020     16:38        2130408 cxDW25.dll
-a----       07.10.2020     16:38       27833320 cxLL25.dll
-a----       07.10.2020     16:38        2449896 cxLL2501.lng
-a----       07.10.2020     16:38        4115944 cxLL25bc.llx
-a----       07.10.2020     16:38       14992360 cxLL25ex.llx
-a----       07.10.2020     16:38       12883952 cxLL25ht.llx
-a----       07.10.2020     16:38       10067944 cxll25oc.llx
-a----       07.10.2020     16:38       11349480 cxLL25pr.dll
-a----       07.10.2020     16:38        8979232 cxll25pw.llx
-a----       07.10.2020     16:38       15687512 cxLL25xl.dll
-a----       07.10.2020     16:38        5770728 cxLS25.dll
-a----       07.10.2020     16:38        2764776 cxUT25.dll

Warum ist das so?
Wie können wir das umgehen?

Den IIS Pool neuzustarten ist keine Lösung.
Leider blockieren diese DLLs nun das Deployment…

Vielen Dank!

Alles war wir mit LL machen ist folgendes:

LL = New ListLabel
LL.LicensingInfo = ...

LL.AutoShowSelectFile = False
LL.AutoShowPrintOptions = False
LL.AutoDestination = LlPrintMode.Export

LL.SetDataBinding(dsEtiketten, String.Empty)
LL.AutoProjectType = LlProject.Label
LL.AutoProjectFile = strTemplateFile
//LL.Debug = LlDebug.Enabled

LL.ExportOptions.Add("Export.Target", "PDF")
LL.ExportOptions.Add("Export.File", strPDF)
LL.ExportOptions.Add("Export.Path", strPathPdf)
LL.ExportOptions.Add("Export.Quiet", "1")

pd = New Printing.PrintDocument()
strDruckername = pd.PrinterSettings.PrinterName

settings = New Printing.PrinterSettings()
strDruckername = settings.PrinterName

LL.Core.LlSetPrinterInPrinterFile(LlProject.List, strTemplateFile, LlPrinterIndex.AllPages, strDruckername)

LL.Print()

pd.Dispose()
LL.Core.Dispose()
LL.Dispose()

Da der worker process bzw. der IIS die nativen DLLs lockt, muss zumindest der AppPool recyceled werden. Vergleichen Sie dazu auch folgende Links:
https://developercommunity.visualstudio.com/content/problem/546858/bin-files-locked-by-iis-worker-process-1.html

https://faithlife.codes/blog/2013/05/using-native-dlls-from-asp-net-apps/

Bei Verwendung des WebDeploys mit einer App_Offline.htm sollte dies auch geschehen. Die folgenden beiden Links beschreiben das:

© combit GmbH