2013-07-30 38 views
0

我有打印問題。我寫了一個程序,當我在Visual Studio中運行時,它的工作非常完美。調用Print,PageSettings和pagePreview的按鈕可以毫無問題地完成所有操作。但是,當我從發佈文件夾中運行我的程序(構建發佈後),然後單擊按鈕我收到錯誤的消息:未處理的異常發生在您的應用程序中。如果您單擊繼續...等等...問題與打印(也pageSettings,pagePreview)

異常文本

System.Drawing.Printing.InvalidPrinterException: No printers are installed. 

它說沒有安裝打印機,但事實並非如此。爲什麼它在VS下工作?

好吧,我寫了一個小程序,在那裏我稱之爲PrintPreviewDialog上和PrintDialog類。打印由printDocument完成。所以,我有兩個按鈕的表單。

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
    { 
     e.Graphics.DrawString("Hello World", new Font("Times New Roman", 16, FontStyle.Bold), Brushes.Black, 10, 10); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     printPreviewDialog1.Document = printDocument1; 
     printPreviewDialog1.ShowDialog(); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     printDialog1.Document = printDocument1; 
     printDialog1.ShowDialog(); 
    } 

當我運行這段代碼在VS - 一切都運行完美,但是當我從發佈或調試運行文件夾中的程序返回的異常:沒有安裝打印機。我已經嘗試了兩臺計算機和一臺虛擬機,但是在任何地方我都會得到與例外相同的結果。

回答

0

要調試ASP.NET應用程序,您必須是計算機上的管理員的ASP.NET Web服務器正在運行,或者如果ASP.NET工作進程正在運行你的名字必須是調試器用戶組中的用戶帳號。而ASP.NET應用程序默認作爲NetworkService憑證運行

而打印機通常安裝在用戶的配置文件中(特別是如果它是網絡打印機,而不是諸如USB或並行電纜等物理連接的打印機)。以管理員身份登錄時看到的內容並不一定表示當其他用戶登錄同一臺計算機時,它們將可用。由於ASP.NET應用程序作爲NetworkService運行,所以Web應用程序不太可能在那裏看到打印機。

所以創建.NET應用程序池的帳戶上運行,然後爲用戶提供權限連接到打印機或打印機添加。

對於Windows應用程序或正常NET應用程序,當你在Visual Studio中運行它以管理員權限運行,但是當你安裝可執行文件,並嘗試訪問打印機也可能導致這個錯誤,因爲用戶帳戶與運行此應用程序可能沒有權限該打印機

因此,我建議在所有的這些得了提到的觀點,一步一步

淨獨立應用程序

  1. 請檢查默認打印機設置。
  2. 檢查,如果你想通過代碼使用默認打印機或任何其他打印機,它應該有必要的權限,以便登錄的用戶目前可以訪問它。爲此,請打印機設置 - >選擇打印機 - >右鍵單擊它並打開打印機屬性。在安全選項卡中,檢查當前登錄的用戶是否有權訪問該打印機。
  3. 如果仍然沒有工作嘗試給權限的用戶「每個人」。它應該工作。在這種情況下,可能很容易發現安裝後出了什麼問題。

ASP。NET應用程序

  1. 在這種情況下需要澄清的第一件事是您的代碼在服務器上執行,而不是在本地計算機上執行。您無法通過ASP.NET控制用戶計算機上的打印。因此,請檢查打印機是否安裝在服務器上,並將其中一臺打印機標記爲默認打印機。當在調試模式下在本地環境中運行代碼時,可能出現以下情況:打印機安裝在您的計算機上,但是當您將應用程序託管在某個其他服務器上時,則該服務器上未安裝任何打印機。
  2. 如果是這樣,然後嘗試將打印機設置爲默認打印機
  3. 對於此打印機設置 - >選擇打印機 - >右鍵單擊它並打開打印機屬性。在安全選項卡中,檢查用戶「網絡服務」是否可以通過此打印機進行打印,如果沒有,則將相關權限授予「網絡服務」。

請進行這些檢查,我希望解釋清楚,我可以通過這個提供必要的幫助。

+0

請給我寫說明一步一步 – mit

+0

更新請檢查。 –

+0

羣組和用戶:所有人(默認)。我什麼也沒變。而且..我用其他軟件調用打印過程沒有任何問題。 – mit