Ответ 1
По умолчанию при установке нового шрифта уведомление об изменении уведомляется только о текущем сеансе. Поэтому, если вы заходите на сервер в сеансе служб терминалов (что кажется вероятным), то приложение ASP.NET(которое будет работать в другом сеансе) не увидит изменения.
При перезагрузке система автоматически сканирует каталог шрифтов и "регистрирует" все шрифты там в текущий сеанс.
Чтобы "вручную" зарегистрировать новый шрифт, вам нужно будет вызвать AddFontResource и передать путь к шрифту.
Чтобы сделать это немного проще, вы можете сделать это так, чтобы ваше приложение сканировало папку Fonts и вызывало AddFontResource
в каждый файл, который он там обнаружил Application_Start
. Таким образом, при установке нового шрифта вы можете просто переработать сайт (например, отредактировать файл web.config), и он будет повторно сканировать все файлы.
Другим вариантом было бы поместить чат каталога (через FileSystemWatcher) в папку Fonts и автоматически перепроверить его.
Я думаю, это зависит от того, как часто вы будете устанавливать новые шрифты...