2013-12-10 119 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

回答