.net – Error “Settings to access printer ‘printername’ are not valid” when printing from Windows service

netnetwork-printersprintingwindows-services

I get the error mentioned when printing to a network printer.

The error does not occur when run under XP/Win2003, in a WinForm app or when a local printer is used.

The error does only occur when run as a Windows Service under Vista/Win7/Win2008 and printing to a network printer.

The Windows service runs under a network user that has access to the network printer. Before I print I check if the printername (including network path) is ok by looping through the available printers.

How can this be solved?

Best Answer

Solved by adding the printer to the SYSTEM user via a registry hack as described in the Microsoft doc: http://support.microsoft.com/kb/184291/en-us.