2014-01-08 90 views
0

我想打印一個文件,它在我的Visual Studio 2010應用程序中工作正常,但是當我在IIS 7上發佈我的項目時,打印無法正常工作,我無法在事件中看到任何錯誤觀衆。IIS 7打印不工作

MyProcess = new Process(); 
MyProcess.StartInfo.CreateNoWindow = false; 
MyProcess.StartInfo.Verb = "print"; 
MyProcess.StartInfo.FileName = destinationPath; 
MyProcess.Start(); 
MyProcess.WaitForExit(10000); 
MyProcess.Close(); 
+0

您希望打印哪裏? 「默認打印機」?哪個用戶的默認打印機? –

回答

3

當您在Visual Studio中運行時,您以登錄的交互式用戶身份運行。

當你在IIS中運行時,你不是上述任何一個。


這通常是在一個web應用程序做的方式是:

  1. 顯示
  2. 文檔到用戶在瀏覽器打印使用從JavaScript的'window.print'功能的文檔。
+0

那我該怎麼辦? –

+0

這取決於你想要完成什麼。請回答我上面的評論(你期望它打印在哪裏)? –

+0

默認打印機我很抱歉,我是新的.net –

1

如果有人仍然在意一個答案.. 我有同樣的問題,解決方案是讓IIS用戶訪問使用計算機上安裝的打印機。從IIS打印時,您以系統默認用戶身份登錄,默認情況下,用戶默認情況下在註冊表中沒有正確的打印機訪問設置。您需要通過在註冊表中添加少量條目,將打印機訪問權限授予默認系統用戶。只需按照我的教程http://support.microsoft.com/?kbid=184291進行操作。 它會解決它。

+0

當然,現在您遇到安全問題,因爲您已允許來自Internet的用戶訪問您的打印機。實際上,根據您訪問打印機的方式,您可能訪問的不僅僅是打印機。現在,您的身份驗證不僅需要足夠好以保護您的應用程序,還需要足夠好以保護網絡上的資源,如打印機。 –

1

如果打印機未安裝在服務器上,則不會發生任何事情。

如果您嘗試從ASP.NET代碼打印到連接到客戶端計算機的打印機,它永遠不會工作。服務器無法訪問並使用客戶端計算機上的任何資源。

第二件重要的事情是在IIS應用程序池中將LoadUserProfile更改爲true。