2015-10-06 92 views
0

我使用.NET framwork 4.0 交流#web服務工作,我有一個文件(print.exe),它執行打印,文件工作時,我雙擊它手動打印,但是當使用web服務時,它給出了一個錯誤:沒有安裝打印機。.NET Web服務學嘗試打印網絡打印機無法正常工作

將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

我的直覺是,該服務正在運行的用戶,不能訪問到該打印機。

您可以嘗試更改StartInfo.UseShellExecutetrue,但我也會檢查您的服務用戶的權限。

+0

好,我現在嘗試它,用戶是網絡本身 –

+0

如果你登錄爲這個用戶和直接運行控制檯應用程序會發生什麼情況的管理? –

+1

我終於得到了它與我當然老闆的幫助下工作,竟然是一個安全問題,所以我們試圖解決許可的事,通過使用Web服務監聽器是觸發exe文件在Windows應用程序,將文件發送到打印機,所以Web服務不直接訪問該exe文件。 –