在web 上调用exe权限解决方法 ,关于FlashPaper2 命令行FlashPrinterexe的调用

在web 上调用exe权限解决方法 ,关于FlashPaper2 命令行FlashPrinterexe的调用

http://hi.baidu.com/jiaxw/blog/item/93b619f38c5d805b342accf8.html


在此之前我已经找过很多国外的文章,很多人都碰到类似的情况
就是通过asp.net 调用服务器上的FlashPrinter.exe 程序,(这个程序可以通过虚拟打印机把所有可打印的文件转换成swf文件)
我这里是通过Process类调用的
CMD的命令式这样的
xxx\\xxx\\FlashPrinter.exe "d:\\1.txt" -o "d\\1.swf"
我在服务器上直接输入上面命令行正常运作
但是通过web 也就是Network Services用户组调用就没有正常输出文件,
我调试过可以正常调用FlashPrinter.exe 进程,但就一直没有输出文件

我曾经从新安装新的window2003用于测试
第一次我用了好几个小时去搞:
1.IIS权限
2.用户组权限
3.本地策略
4.打印机权限
我忘记了是搞了那些东西,不知不觉就可以通过asp.net 正常使用那个功能.
后来我为了再次测试,我把系统还原了,结果我怎么在设置也不能正常调用那个功能了
在此之前已经设置过很多东西上面所说的是我不知道怎么样设置就可以运行了
PS:我身边有好几台机器,有些是正常的,有些就是一直烦着..查看事件日志说是已经成功转送打印命令,但就是打印的字节数为0

想把pdf转换成swf文件,就在asp.net后台代码中启动了flashpaper进程,但同样的代码在winxp下,好用。但在 win2003下,就不好用了。代码如下:

public static void ConvertPdfToSwf(HttpRequest reqeust, String styFileName, String[] dataFileNames, String outputFileFullName)
{
try
{
String flashPrinter = String.Concat(AppDomain.CurrentDomain.BaseDirectory, "FlashPrinter.exe");//FlashPrinter.exe
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(flashPrinter);
if (String.IsNullOrEmpty(outputFileFullName))
{
return ;
}
Int32 intLastDot = outputFileFullName.LastIndexOf(".");
//*********Temp Programming****************************************
Int32 intLast = outputFileFullName.LastIndexOf("\\");
String path = outputFileFullName.Substring(0, intLast);
String tempFileName = path + "\\PdfToSwf20080923.pdf";
//*****************************************************************
String swfFileName = String.Concat(path, "\\PdfToSwf20080923.swf");
startInfo.Arguments = String.Concat(tempFileName, " -o ", swfFileName);
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = startInfo;
Boolean isStart = process.Start();
process.WaitForExit();
process.Close();
}
catch(Exception ex)
{
throw ex;
}

你可能感兴趣的:(在web 上调用exe权限解决方法 ,关于FlashPaper2 命令行FlashPrinterexe的调用)