.NET webservice尝试在网络打印机上打印不工作

时间:2015-10-06 09:15:29

标签: c# asp.net .net web-services

我正在使用.net framwork 4.0开发一个c#web服务 并且我有一个执行打印的文件(print.exe),当我手动双击它时文件工作,它打印,但是当使用webservice时,它会给出一个错误,即没有安装打印机。

这是webmethod的代码:

[WebMethod]
        public String Print_In_Kitchen(Int32 OrderID, String Lang)
        {
            System.Security.SecureString secPass = new System.Security.SecureString();
            string paswd = "96321";
            for (int i = 0; i < paswd.Length; i++)
            {
                secPass.AppendChar(paswd[i]);
            }

            Process proc = new Process();
            proc.StartInfo.FileName = @"C:\EXE_Print.exe";
            proc.StartInfo.Arguments = @"" + OrderID + " " + Lang + " " + "\"" + ConfigurationManager.ConnectionStrings["constr"].ConnectionString + "\"";
            proc.StartInfo.UserName = "omar";
            proc.StartInfo.Password = secPass;
            proc.StartInfo.Domain = "Futec";
            proc.StartInfo.Verb = "runas";

            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.Verb = "runas";
            proc.StartInfo.RedirectStandardInput = true;
            proc.Start();
            string s = proc.StandardOutput.ReadToEnd();
            proc.WaitForExit();

            return s;
}

我搜索了一个解决方案,但没有找到任何有用的链接或解释,在这里看到了这个问题,但没有回答:pdf print through .net process 我是.NET的新手

1 个答案:

答案 0 :(得分:1)

我的直觉是服务正在运行的用户无法访问该打印机。

您可以尝试将StartInfo.UseShellExecute更改为true,但我也会检查您的服务用户的权限。