1

DYMO_Label_v.8_SDK_Installer.exeデフォルトの v8.x ラベル印刷ソフトウェアをインストールしました。コードは私のマシンでは問題なく動作しますが、iis サーバーに公開すると、次のメッセージが表示されます。

<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 ソフトウェアは (同じ PC から) 印刷できます。Windows のコントロール パネルでプリンターを見ると、labelprinter が表示されます。

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 は、4.5 ではなく .net 4 の win2003 でテストしたところ、プリンターが一覧表示されません。したがって、2003 年と 2012 年はどちらも機能しません。Windows 8.1 は動作します。同じコード、同じネットワーク共有プリンター。dymo label v8 ソフトウェアは、2003、2012、8.1 から印刷できます。プリンタが正しくインストールされていることを確認してください。また、2003年にweb.configで偽装して管理者として実行しようとしました。しかし、それはうまくいきませんでした。以下のスクリーンショットでこのコマンドを実行し、プリンター名をコピーして web.config ファイルに貼り付けても、インストールされているプリンターを見つけることができません。

ここに画像の説明を入力

4

1 に答える 1