我正在将一个.docx,.doc文件转换为.ps文件。在本地机器上可以正常工作并打印.ps文件,但在IIS7.5上不能打印,我只是得到了这个错误
“ActiveX服务器尚未启动!请使用函数"cStart()”启动ActiveX服务器!“
我尝试过cStart("/NoProcessingAtStartup",false),但没有成功,并且多次搜索都没有结果。以前有没有人遇到过这样的事情?
IIS:匿名授权,应用程序池标识
PDFCreator.clsPDFCreator creator = new PDFCreator.clsPDFCreator();
PDFCreator.clsPDFCreatorOptions options = new PDFCreator.clsPDFCreatorOptions();
options = creator.cOptions;
PDFCreator.clsPDFCreatorError perr = new PDFCreator.clsPDFCreatorError();
if (!creator.cStart("/NoProcessingAtStartup", false))
{
Console.Write("Can't Initiase PDF Converter, letter Generation Error");
}
options.UseAutosave = 1;
options.UseAutosaveDirectory = 1;
options.AutosaveDirectory = path;
options.AutosaveFilename = name;
options.AutosaveFormat = 6; //0=PDF, 1=PNG, 2=JPG, 3=BMP, 4=PCX, 5=TIFF, 6=PS, 7= EPS, 8=ASCII
creator.cOptions = options;
creator.cSaveOptions();
creator.cClearCache();
creator.cPrinterStop = false;
creator.cDefaultPrinter = "PDFCreator";
creator.cPrintFile(pathFull);
err = creator.cError.Description.ToString();发布于 2012-06-14 00:00:24
这可能是因为应用程序池用户没有运行PDFCreator的权限,或者因为它在第一次运行之前从未运行过PDFCreator,所以它试图以交互方式进行一些安装或设置,而应用程序池用户没有交互上下文。尽管我倾向于后者,因为如果是前者,我预计会出现不同的错误。
如果可以通过计算机管理/组件服务中的DCOM config部分访问PDFCreator,那么您可以尝试将其设置为始终以特定用户身份运行,可能是您自己的身份。您还需要为应用程序池用户授予启动和激活权限,以及对其的访问权限。
或者,您可以在应用程序配置或代码中尝试模拟,并模拟通常用于PDFCreator的帐户。
更新:虽然Word是实际的问题,PDFCreator试图激活它,但上面的建议仍然适用。
如果另一个进程正在尝试激活Word,则运行该进程的用户将需要对其具有DCOM权限,并且如果激活进程的用户没有权限或以前从未使用过Word,则可能需要以特定用户的身份运行Word。
举个具体的例子,假设你在Network Service帐户下运行进程,它试图激活Word,当一个新用户第一次尝试运行Word时,Word会在第一次配置时弹出一些安装窗口,但由于用户没有以交互方式登录这些窗口,因此无法看到这些窗口,也无法响应,因此安装挂起。在这种情况下,最好将Word设置为始终在DCOM配置中的特定标识下启动。
https://stackoverflow.com/questions/11005013
复制相似问题