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

Теперь я что-то около 32 и 64 разрядных версий SDK читать, но это дало бы мне другое право ошибки? локальное тестирование также выполняется на машине x64. Нет, я думаю, но iisexpress или developmenterver. И sdk, который я загрузил, является последним, я думаю, который должен работать как для x86, так и для x64 машин в соответствии с блоком dymo.

Редактировать Этот код не отображает ни одного принтера. Но программное обеспечение 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. поэтому принтер установлен правильно. Я также попробовал олицетворение в web.config в 2003 году для запуска в качестве администратора. Но это не сработало. Когда я выполнил эту команду на скриншоте ниже и скопировал вставку имени принтера в файл web.config, он все еще не может найти установленный принтер.

enter image description here

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^