我已經安裝了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文件中時,它仍然無法找到已安裝的打印機。