C# 发布到我的服务器时未找到ITEXT文件

C# 发布到我的服务器时未找到ITEXT文件,c#,asp.net-mvc,itextsharp,C#,Asp.net Mvc,Itextsharp,我正在使用ItextSharp,通过这样做,我得到了一种新的字体 string fontPath = Path.GetFullPath("C:\\BMSApplicationFiles\\Fonts\\FREE3OF9.TTF"); BaseFont barCodeBase = BaseFont.CreateFont(fontPath, BaseFont.CP1252, BaseFont.EMBEDDED); 该文件位于我的dev机器和服务器上的该目录中。 当我在我的开发机器上运行它时,它工

我正在使用ItextSharp,通过这样做,我得到了一种新的字体

string  fontPath = Path.GetFullPath("C:\\BMSApplicationFiles\\Fonts\\FREE3OF9.TTF");
BaseFont barCodeBase = BaseFont.CreateFont(fontPath, BaseFont.CP1252, BaseFont.EMBEDDED);
该文件位于我的dev机器和服务器上的该目录中。 当我在我的开发机器上运行它时,它工作正常,当发布到我的服务器时,我得到一个错误,说FREE3OF9.TTF没有作为文件或资源找到。 我反复检查了文件是否在我的服务器上。我的应用程序完全信任IIS。 IIS用户对该文件夹具有完全访问权限。但我还是犯了这个错误。非常令人沮丧。 有什么想法吗


此代码不在Web应用程序中,而是在Web应用程序引用的DLL类库中。我是否需要添加更多的特殊权限或其他内容?

您很可能存在安全问题

如果运行IIS7,请检查IIS_IUSRS组是否有权访问该文件(在资源管理器中打开文件属性,选择“安全”选项卡等)。


如果您运行IIS6,请检查IUSR_MachineName帐户是否有权访问该文件。

您的下一步应该是确认您认为正在发生的事情正在发生。如果允许,请下载并安装允许您记录活动的软件,包括试图访问哪些文件以及由哪个用户帐户访问的文件。当然,在监视时应用筛选器,否则您将看到服务器上的所有活动


如果这只是确认预期用户正在尝试读取正确的文件,那么可能字体有问题。尝试用另一个标准文件(例如arial或其他东西)暂时替换字体文件,看看会发生什么。(这不太可能有帮助,因为它可以在您的开发机器上工作,但可能值得一试)

我在尝试让它与IIS一起工作时遇到了类似的错误。在IIS中,我必须将文件目录添加为虚拟驱动器。当我遇到类似的情况时,这对我很有效。希望它对您有效,祝您好运

我一眼就觉得不错-您确定您检查了正确用户的权限吗?是的,我查看了权限并验证了文件存在大约一百次。这就是为什么我如此沮丧的原因。正如我在最初的帖子中提到的,我已经检查并再次检查了所有这些。还是相同的错误我已经安装了进程监视器。当我执行应该获取此字体的操作时,我会看到process monitor中正在访问的所有其他文件,例如.js文件,但是没有任何关于字体文件的地方。我所做的就是寻找树干,如果什么也没找到。我用另一种常用字体替换了它,但该字体仍然会出现类似错误。有一堆Fast IO Disallowed和path not found结果与控制器路径相对应,控制器将调用访问此字体的方法,但与此文件无关。我也有此问题,从“过程监控”中也得到了类似的结果(可能是因为我还没有弄清楚如何正确使用该工具)。无论如何,这肯定是一个权限问题,但我无法确定iTextSharp代码在哪个帐户下运行,因此无法正确设置权限。目前我的解决方案是构建iTextSharp项目,在AssemblyInfo.cs文件中注释掉“snk”引用,从而使代码在与我的其余代码相同的帐户下运行(即具有正确权限的帐户)。