J'ai un site Web C#/MVC pour télécharger des fichiers PDF et lorsque plusieurs instances de navigateur essaient de télécharger en même temps, en utilisant Ghostscript.Net v 1.2.1
, Je reçois l'erreur suivante:Ghostscript bizarre verrouiller sur dll (Une erreur est survenue lors de l'appel à 'gsapi_new_instance': -100)
Ghostscript.NET.GhostscriptAPICallException: An error occured when call to 'gsapi_new_instance' is made: -100 at Ghostscript.NET.Interpreter.GhostscriptInterpreter.Initialize() at Ghostscript.NET.Interpreter.GhostscriptInterpreter..ctor(GhostscriptVersionInfo version, Boolean fromMemory) at Ghostscript.NET.Viewer.GhostscriptViewer.Open(String path, GhostscriptVersionInfo versionInfo, Boolean dllFromMemory) at Ghostscript.NET.Viewer.GhostscriptViewer.Open(Stream stream, GhostscriptVersionInfo versionInfo, Boolean dllFromMemory) at Ghostscript.NET.Rasterizer.GhostscriptRasterizer.Open(Stream stream, GhostscriptVersionInfo versionInfo, Boolean dllFromMemory)`
Il brise ici:
private Ghostscript.NET.GhostscriptVersionInfo _version = Ghostscript.NET.GhostscriptVersionInfo.GetLastInstalledVersion(Ghostscript.NET.GhostscriptLicense.GPL | Ghostscript.NET.GhostscriptLicense.AFPL, Ghostscript.NET.GhostscriptLicense.GPL);
using (var raster = new GhostscriptRasterizer())
{
raster.Open(fileStream, _version, false);
}
sur l'Open. Ce code est appelé depuis une fonction appelée par un async
Task<ActionResult>
. Je me demande si le async
le brise d'une manière ou d'une autre. Sur le site GhostScript
, la réponse la plus proche que je pourrais trouver est de m'assurer que j'ai Close()/Dispose()
instances précédentes - mais ce n'est pas mon problème car le problème est des instances concomitantes dans différentes sessions de navigateur appelant dans le même fichier .dll (qui a tout le monde autorisations dans IIS).
Il n'y a pas de variables statiques en référence à ceci, et cela se produit sur un HttpPost
d'origine.
Oui qui a aidé certains, mais je encore besoin d'un verrou statique pour contrôler l'accès d'une seule fois à la DLL J'ai d'abord essayé de vous remercier mais je n'avais pas encore le droit de laisser un commentaire ... –
Désolé ouais j'ai édité ce qui précède (s'habituer au site). –