在ASP.NET C#应用程序中使用Graphviz Dlls

11
我正在一个asp.net应用程序中使用Graphviz Dlls,我正在使用此处描述的方法通过我的c#代码访问Dlls:- http://implicitoperator.com/blog/2010/4/11/graphviz-c-sample.html http://implicitoperator.com/blog/2009/12/24/rendering-an-in-memory-graphviz-image-with-c.html 在我的本地机器调试时,一切都按照我预期的方式工作,并返回我的图形的PDF。
问题是当应用程序部署到我们的UAT服务器时没有生成图形。没有抛出任何异常,似乎没有任何错误,我只得到一个空白的PDF,而不是带有图形的PDF。
我已经检查了应用程序是否具有调用非托管代码的正确权限,检查了应用程序是否可以找到graphviz Dlls,以及检查了进入方法调用的dot代码在本地和服务器上是否相同,所有内容都没问题。
我为这个问题感到苦恼,是否有人有任何想法?

1
也许与此无关,但以防万一:我不仅需要包含David Brown在文章中提到的dll文件,还需要从graphviz\bin目录中包含几乎所有的dll文件才能使示例正常工作(可能是由于Graphviz安装文件夹未在PATH中)。尽管如此,我仍然存在一些问题... - marapet
4
我不熟悉Graphviz Dlls,但是它们生成图片时是否会在硬盘上创建任何文件?.NET图表控件使用特定目录来创建和销毁动态图表创建过程中使用的临时文件。当我将一个使用这些控件的解决方案从开发机器移动到服务器时,我遇到了非常类似的问题。必须给IIS帐户授予.NET创建的图像所在文件夹的权限。 - Justin C
2个回答

1

1
你是如何注册dll的?也许需要仔细检查服务器上的web.config文件(可能你在那里漏掉了一些东西)?
此外,像Justin C建议的那样,请确保服务器上没有临时文件夹用于流式写入/创建PDF。你可能需要允许该文件夹的写入权限等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接