2013-12-10 108 views
1

我已經安裝了DYMO_Label_v.8_SDK_Installer.exe和默認的v8.x標籤打印軟件。代碼運行在我的機器上很好,但是當我把它發佈到IIS服務器它給了我這個消息:Dymo SDK無法找到打印機

<Error> 
    <Message>An error has occurred.</Message> 
    <ExceptionMessage>Printer '\\pcname\DYMO' is not found</ExceptionMessage> 
    <ExceptionType>System.InvalidOperationException</ExceptionType> 
    <StackTrace> at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext() 
    --- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()  
    </StackTrace> 
</Error> 

而且奇怪的是,我已經加入了\\pcname\DYMO並可以打印到它。當我瀏覽到\ pcname時,它顯示我共享的dymo打印機。 當我在本地運行我的代碼時,一切正常,但當它在web.config中使用相同的設置進行部署時,它找不到打印機?

StringBuilder sb = new StringBuilder 
var label = DYMO.Label.Framework.Label.Open(System.Web.HttpContext.Current.Server.MapPath(@"~/Content/thelabel.label")); // mvc webapplication 
label.SetObjectText("Address", sb.ToString()); 
label.Print(ConfigurationManager.AppSettings.Get("printername")); 
// printername = \\pcname\dymo 

現在我已經讀了一些關於sdk的32位和64位版本,但那會給我一個不同的錯誤吧?本地測試也在x64機器上進行。沒有iis,但我認爲iisexpress或developmentserver。我已經下載的sdk是我認爲最新的,根據dymo博客,它應該適用於x86和x64機器。

編輯此代碼未列出任何打印機。但dymo軟件可以打印(來自同一臺電腦)。當我查看Windows控制面板中的打印機時,會列出標籤打印機。

StringBuilder sbPrinters = new StringBuilder(); 
DYMO.Label.Framework.Printers p = new DYMO.Label.Framework.Printers(); 
foreach(var printer in p.ToList()) 
{ 
    sbPrinters.AppendLine(printer.Name); 
    sbPrinters.AppendLine(printer.ModelName); 
    sbPrinters.AppendLine(printer.IsConnected.ToString()); 
    sbPrinters.AppendLine(printer.IsLocal.ToString()); 
    sbPrinters.AppendLine("-==========-"); 
} 
return sbPrinters.ToString(); // empty... 

EDIT2 只是測試它在WIN2003在.NET 4中,而不是4.5,並沒有列出任何打印機。 因此,2003年和2012年都不起作用。 Windows 8.1確實有效。相同的代碼,同一網絡共享打印機。 dymo label v8軟件可以從2003,2012,8.1打印。所以打印機安裝正確。我也在2003年的web.config中嘗試模仿以管理員身份運行。但那並不奏效。 當我在下面的屏幕截圖中運行此命令並將打印機名稱粘貼到web.config文件中時,它仍然無法找到已安裝的打印機。

enter image description here

回答