none
IISによるプリンタ共有について RRS feed

  • 質問

  • いつも勉強させて頂いております。

     

     IISでのプリンタ共有についてお聞きしたいのですが、IISでは複合機を共有することは

    できないのでしょうか?複合機では無い物は共有して印刷できるのですが、

    同じ設定をして共有をしても、なぜか複合機のみ印刷する事ができません。

     ここ数日調べているのですがどうしても解決することができなかったので、

    どなたかご存知の方何卒ご教授のほどよろしくお願いします。

    また、「できる」「できない」に関係なく何か参考になるソースがありましたら、

    どうか教えて下さいますようお願いいたします。

    2006年4月27日 4:02

すべての返信

  • 複合機とは総称であって固有名称ではありません。

    うまく出るかどうかよりまずはその製品のドライバとかそのあたりから調査を開始してみては?

    2006年4月27日 13:59
  • ご返信ありがとうございます。

     

    今日「Canon PIXUS MP500」(これも複合機)で印刷確認したところ共有し印刷

    することができました。前回、複合機と呼んでおりましたのは「Dell AIO 922」という

    プリンタです。また本日、最新のドライバを取得しインストールしましたが、これでも

    印刷することは出来ませんでした。

     

    その他、複合機ではない物の固有名称は以下の通りです。

    「EPSON MP-900C」「EPSON MP-770C」の2台です。

     

    結果としまして、複合機だから共有できなかったわけではなさそうでした。

    2006年4月28日 0:13
  • もう少し環境を書かれると糸口が見つかるかもしれません。私の知っている範囲では、ポート445(ダイレクトホスティングSMBサービス)に問題があって、SmbDeviceEnabledを0に設定することにより、共有プリンタの不具合が直るケースがあります。
    2006年4月28日 0:29
    モデレータ
  • trapemiyaさん、ご回答ありがとうございます。

    「SMBDeviceEnabled」を0に設定してみましたが、問題を解決することは出来ませんでした。

    詳しい環境なのですが、
    まず、マシンはプリンタを接続したサーバ(以後プリンタサーバ)、Webサーバがあります。
    プリンタサーバ  :Windows2000 Professional
    Webサーバ   :Windows2003 Server
    クライアント    :上記2台以外のWindowsXP、2000

    ネットワーク環境
    LANで、内部でのFWは使用していません。内部マシンへのポート制限なし

    プリンタは、
    「Dell AIO 922」       :複合プリンタ(プリンタサーバに接続)
    「EPSON MP-900C」    :プリンタ機能のみ(プリンタサーバに接続)
    「DocuPrint C2425」     :ネットワークプリンタ(LAN上)
    「DocuCentre Color a250」 :ネットワークプリンタ(LAN上)
    計4台ありプリンタを選択して印刷させようと思っています。

    開発は、VisualStudio2003 ASP.NET C# で行っています。
    レポートはCrystalReportを使用し作成しております。

    現在は、IISを使用して「Dell AIO 922」と「EPSON MP-900C」を共有しており
    「Dell AIO 922」以外のプリンタへの印刷は可能となっております。
    その他、システム上使用しませんが「EPSON MP-770C」「Cannon MP500」にも
    印刷する事ができました。

    以下印刷するために作成した関数です。
    public static void PrintReport(string printerName, ReportDocument Report)
    {
     PageMargins margins;

     // PageMargins 構造体を取得し、
     //  レポートの余白を設定します。
     margins = Report.PrintOptions.PageMargins;
     margins.bottomMargin = 350;
     margins.leftMargin = 350;
     margins.rightMargin = 350;
     margins.topMargin = 350;

     // ページ余白を適用します。
     Report.PrintOptions.ApplyPageMargins(margins);

     // プリンタを選択します。
     Report.PrintOptions.PrinterName = printerName;

     // レポートを印刷します。startPageN および endPageN
     //  パラメータを 0 に設定し、すべてのページを印刷します。
     Report.PrintToPrinter(1, false,0,0);
    }

    「Dell AIO 922」で実行した場合のエラー内容は以下の通りです。

    『ユーザーにより要求が取り消されました。

     説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。
     エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

     例外の詳細: CrystalDecisions.CrystalReports.Engine.InternalException:
      ファイル C:\WINDOWS\TEMP\temp_7605b80e-4019-4ca0-8f4b-4854209bb8e5.rpt のエラー :
     ユーザーにより要求が取り消されました。』

    なにか解決する方法などお知りの方がいらっしゃいましたら是非ともご教授お願いいたします。

    2006年4月28日 1:47
  • 適切なアクセス権が不足しているのかもしれません。Machine.configファイルのProcessModelで、userNameを"SYSTEM"に変えてみるとどうなりますか?

    #「EPSON MP-900C」 と同じプリンタサーバにつながっていたら、上のことは無視して下さい。

    2006年4月28日 2:36
    モデレータ
  • 返信遅くなって申し訳ありません。

    「EPSON MP-900C」と「Dell AIO 922」は同じプリンタサーバに接続してあります。

    2006年4月28日 7:08