I'm trying to make a method in C# that empties all items in a print queue. Below is my code:
LocalPrintServer localPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministratePrinter);
PrintQueue printQueue = localPrintServer.GetPrintQueue(printerName);
if (printQueue.NumberOfJobs > 0)
{
printQueue.Purge();
}
When this code runs, on the localPrintServer constructor, the app throws this error: "An exception occurred while creating the PrintServer object. Win32 error: Access is denied."
That constructor has a few overloads (including sending no parameters). Trying any of those, I get past that line, but when I get to the printQueue.Purge() call, I get the same access denied message as listed above.
Looking for suggestions of how / what I can do to get around this. I can manually delete the print jobs from my computer. I'm not sure if the app runs with the same access I have nor how to check that.
Are you running your website as 4.0? I ran into issues when we upgraded our website from 3.5 to 4.0 Framework. The Print Purging functionality stopped working in the 4.0 Framework. Ultimately I ended up creating a web service that used the 3.5 framework and had the 4.0 website communicate the printer it wanted to purge to the 3.5 web service.
(Sorry to revive this thread, this was one of the threads I stumbled onto when I was looking for an answer. Figured I'd post this if it helps someone that runs into the same situation)