Специальные шрифты Windows Server 2008 во время рендеринга
Итак, у нас есть служба, работающая на Server 2008, которая запускает процесс (приложение C#), который выполняет некоторую визуализацию. Процесс выполняется успешно, но он использует системные шрифты (я полагаю, Arial) вместо шрифтов, которые должны быть загружены. Если я запускаю этот процесс вручную, войдя на сервер, шрифты загружаются успешно, и процесс отображается правильно.
Я попытался запустить этот процесс с помощью CreateProcessWithLogonW, но это все еще не работает. Я предполагаю, что это связано с неинтерактивными сессиями в Server 2008, но я не могу понять, как это решить.
2 ответа
Я решил эту проблему с помощью PSExec, используя параметры -i и -h. Из того, что я понимаю, он запускает CreateProcessWithLogonW или что-то подобное под сценой. Это правильно создало новый сеанс с учетной записью пользователя за пределами session0. Единственное, что мне нужно было сделать, - убедиться, что лицензионное соглашение для PSExec было принято для пользователя, с которым я пытался запустить процесс. Я также запустил службу "Обнаружение интерактивных сервисов" на случай, если в сеансе появится EULA. После этого я отключил "Обнаружение интерактивных сервисов", так как он мне больше не нужен (не совсем уверен, что мне нужно было сделать этот последний шаг).
Я знаю, что вы нашли решение, но у меня была проблема, очень похожая на вашу (при запуске приложения через запланированную задачу использовался шрифт по умолчанию, но при локальном запуске он нашел бы установленный мной нестандартный шрифт), и я нашел другое решение; В Server 2008 существует проблема, связанная с тем, что пользовательские шрифты не регистрируются сразу после установки для неинтерактивных пользователей, тогда как обычные пользователи (т. Е. При запуске пользователя, фактически вошедшего в систему на компьютере), сразу регистрируют шрифт.
Решение, которое работало для меня, состояло в том, чтобы просто перезагрузить компьютер, на котором был установлен шрифт, и шрифт начал работать под неинтерактивными учетными записями, как при включении компьютера, он регистрируется правильно. Похоже, что в установке шрифта есть ошибка, из-за которой он не регистрирует шрифт правильно для неинтерактивных пользователей до перезагрузки.