我在服务器后台实现了一个打印word文档的功能,我将word的路径设为“D:\123\abc.doc”,在项目中直接运行没有问题。但我发布到iis中进行浏览时,即提示我“系统找不到指定的文件”,请问各位如何解决?在下很久没接触asp.net,都忘掉了。

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-02-23 11:35:32 编辑
      

  2.   

    我通过Response.Write打印出路径,还是有同样的问题
    直接在vs中运行和在iis中运行所打印出的路径同样为D:\123\abc.doc(123为网站的虚拟目录)
      

  3.   

    动态更新的文件(或者子目录)应该放在app_data目录下。
      

  4.   

    你网站的根目录指向的是D:\123?
    Server.MapPath("~/abc.doc")
    应该是可以的。注意文件名和你这里写的一致,不一致可能其他原因导致了
      

  5.   

    我在iis里面设的虚拟目录是D:\123
      

  6.   


            filepath = Server.MapPath("~/abc.doc");
            printername = "SmartPrinter";
            Response.Write(filepath);        try
            {
                System.Diagnostics.Process p = new System.Diagnostics.Process();
                //不现实调用程序窗口,但是对于某些应用无效
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;            //采用操作系统自动识别的模式
                p.StartInfo.UseShellExecute = true;            //要打印的文件路径
                p.StartInfo.FileName = filepath;
                //指定执行的动作,是打印,即print,打开是 open
                p.StartInfo.Verb = "print";            // 获取当前默认打印机
                string defaultPrinter = GetDefaultPrinter();            //将指定的打印机设为默认打印机
                SetDefaultPrinter(printername);            //开始打印
                p.Start();
               
                //等待十秒
                p.WaitForExit(10000);            //将默认打印机还原
               // SetDefaultPrinter(defaultPrinter);
            }
      

  7.   

    string myDocumentsPath = 
    Environment.GetFolderPath(Environment.SpecialFolder.Personal); p.StartInfo.FileName = myDocumentsPath + "\\abc.doc"; 
    p.StartInfo.Verb = "Print";
      

  8.   

    我建议你放一个abc.txt
    filepath = Server.MapPath("~/abc.txt");
    Response.Write(File.ReadAllText(filepath));
    看能打印出abc.txt里面的内容吗
      

  9.   

    是啊,那就不是路径问题了啊。
    web程序执行的权限很低,一般没有权限进行操作导致