C# 为什么ASP.NET代码中没有字体?

C# 为什么ASP.NET代码中没有字体?,c#,asp.net,fonts,C#,Asp.net,Fonts,我有一个ASP.NET网站,在那里我为用户生成ID卡。我使用位图对象并调用Graphics.DrawString在图像上写入各种文本位。我已经使用各种字体来做这件事很长一段时间了,没有任何麻烦 一位客户现在要求我将Roboto字体用于他们的卡。我从谷歌下载并安装在我的系统上——它出现在控制面板上,可供其他应用程序使用。但是,我的卡生成器无法访问它-它默认为Microsoft Sans Serif。我使用了foreach(FontFamily.Families中的FontFamily)查看它是否已

我有一个ASP.NET网站,在那里我为用户生成ID卡。我使用位图对象并调用Graphics.DrawString在图像上写入各种文本位。我已经使用各种字体来做这件事很长一段时间了,没有任何麻烦

一位客户现在要求我将Roboto字体用于他们的卡。我从谷歌下载并安装在我的系统上——它出现在控制面板上,可供其他应用程序使用。但是,我的卡生成器无法访问它-它默认为Microsoft Sans Serif。我使用了
foreach(FontFamily.Families中的FontFamily)
查看它是否已列出,但未包含在列表中。我在WinForms应用程序中尝试了同样的方法,字体也包括在列表中


所以,我的问题是,为什么我不能从ASP.NET进程中访问此字体?ASP.NET和WinForms之间支持字体的方式是否存在一些差异?

因为ASP.NET在特定的池下运行,并且此池以不同的用户身份登录-这些用户可能尚未安装该字体

因此,请检查您的池在哪个用户下运行,并为该用户安装该字体


我不知道如何为其他用户安装字体,尤其是无法登录的应用程序池用户。我尝试修改字体上的安全设置,以允许应用程序池用户使用,但没有帮助。我以前对其他字体也做过同样的操作,它们可以正常工作,无需重新启动IIS即可使进程识别它们。@Ray,也许您将它们作为快捷方式安装,也许您在没有正确权限的情况下将它们放在字体目录中,也许它只是不为其他用户注册-在Windows10上,如果你右键点击一个字体文件,就会询问你是否想“为所有用户安装”。您可以使用您创建的池用户,您可以使用该帐户登录以再次检查fontsI以前从未使用过“为所有用户安装”,也从未出现过问题。我还是试过了-我删除了字体并重新安装了。没有运气-同样的问题。在字体文件的安全设置中,“用户”组被授予读取和执行权限。@Ray Other reason->也许你使用了一些字体六个月后没有的字符串编码,我也遇到了同样的问题,用谷歌搜索它,找到我的老问题,尝试@Aristos建议的解决方案,结果成功了。所以,答案被接受了——thanx。