Если это - просто внутреннее приложение, то можно постараться не печатать от браузера и отправить распечатку непосредственно с сервера на самый близкий принтер пользователю.
Попробуйте изменить:
RegistryKey key = Registry.LocalMachine.OpenSubKey (key_path);
Кому:
RegistryKey key = Registry.LocalMachine.OpenSubKey (key_path, Microsoft.Win32.RegistryKeyPermissionCheck.ReadWriteSubTree);