none
ClickOnceによる帳票直接印刷 RRS feed

  • 質問

  • 印刷プレビューも印刷ダイアログも無しで、直接プリンターへ印刷する仕組をClickOnceで構築しました。

    サーバーで実行すると正常に印刷できますが、クライアントで印刷するとアプリケーションのダウンロード後に

    以下のエラーで終了します。

    どこを調べたら良いのかヒントを頂けませんか?

    宜しくお願い致します。

    説明:
      Stopped working

    問題の署名:
      問題イベント名: CLR20r3
      問題の署名 01: conce_notouchprint.exe
      問題の署名 02: 1.0.0.0
      問題の署名 03: 4f2b52a5
      問題の署名 04: System
      問題の署名 05: 2.0.0.0
      問題の署名 06: 4dbaf753
      問題の署名 07: 1fa8
      問題の署名 08: 15d
      問題の署名 09: System.Net.WebException
      OS バージョン: 6.0.6002.2.2.0.256.6
      ロケール ID: 1041

    • 移動 星 睦美 2012年2月3日 5:38 適切なカテゴリ (移動元:System Center 全般)
    2012年2月3日 3:35

回答

  • >期待している処理の流れや、動いている部分、動いていない部分を確認して書いてみるとよいでしょう

    ①Webにて伝票入力画面へ修正モードで伝票を表示し、「再発行」ボタンをクリック→②ClickOnceサービスへ依頼

    ②ClickOnceサービスにて帳票振分→③Webサービス(該当レポート生成)へ依頼

    ③Webサービスにてレポート生成

    ④ClickOnceサービスにて生成後のレポートを直接プリンタへ出力

    ②→③の部分がローカルでは動作するが、リモートではエラーになっていたようです。

    >印刷処理には何をつかれていますか?

    ActiveReport6.0J(Standard)です。

    結論が後になりましたが、この問題は昨日解決いたしました。

    原因はWeb参照の仕方が悪かったようで、

    http://localhost/・・・・・/rptService.asmx を http://サーバー名/・・・・・/rptService.asmx に変えたら動作しました。

    1週間以上悩んでましたが、当たり前のことでしたね。

    お世話になりました。

    • 回答としてマーク skon_alpha 2012年2月8日 7:43
    • 回答としてマークされていない skon_alpha 2012年2月8日 7:43
    • 編集済み skon_alpha 2012年2月8日 7:47 半角カナを全角カナへ修正
    • 回答としてマーク skon_alpha 2012年2月12日 23:43
    2012年2月8日 7:43

すべての返信

  • 開発環境と運用環境は以下のとおりです。

    宜しくお願い致します。

    ◆開発OS: Windows Server 2008(32bit)SP2
    ◆開発.NET Framework: 3.5 SP1
    ◆Visual Studioのバージョン: 2008
    ◆開発言語: Visual Basic .NET
    ◆運用OS: Windows Server 2008(32bit)SP2
    ◆運用.NET Framework: 3.5 SP1
    ◆アプリケーションの形態: ASP.NET Webアプリケーション
    ◆クライアントのOS: Windows 7(32bit)SPなし
    ◆クライアントのWebブラウザ: Internet Explorer 9(32bit)

    • 編集済み 星 睦美 2012年2月3日 5:36 環境情報にまとめました。
    2012年2月3日 5:25
  • 私も同じ現象に出会いました。以下を参考にしてみて下さい。

    Crystal Reports for VS2010を使う時は.NET Framework 2.0もインストールしよう。
    http://d.hatena.ne.jp/trapemiya/20110404/1301885944

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2012年2月3日 6:34
    モデレータ
    • ASP.NET なのか ClickOnce なのかどっちなのでしょう?
    • ClickOnce だとしてサーバで実行とはどういう意味ですか?
    • クライアント側にXCOPYインストールして実行した場合はどうなりますか?
    • エラーで終了するというのは、どの段階でどのような方法でそのエラーが出力されるのですか?

     

    2012年2月3日 6:35
  • 返信ありがとうございます。

    エラーになったクライアントPCには、.NET Framework 3.5 SP1をインストールしてあります。

    2.0も含まれているので、この点は問題ないと思います。

    あと発行する際の必須コンポーネントに「.NET Framework 2.0」を含めてます。

     

    2012年2月3日 7:54
  • 返信ありがとうございます。

    ASP.NETでレポートを生成して、結果をClickOnceで直接印刷する仕組です。

    (その際にプレビューも印刷ダイアログも無しで、勝手に指定プリンターに印刷したい)

     

    「サーバーで実行」とは「開発サーバー(ローカル)で実行」という意味で、

    ローカルではClickOnceによる直接印刷は正常に動作してます。

     

    「エラーで終了する段階」ですが、

    1.クライアント(リモート)から開発サーバーのClickOnce発行サイトに接続

    2.バージョンチェック

    3.アプリケーションをダンロード

    4.エラー画面表示

    のタイミングです。

     

    エラー内容は

    --------------------------------------

    XXXXXは動作を停止しました

    問題の解決策をオンラインで確認できます。

    → オンラインで解決先を・・・・・終了します

    → プログラムを終了します

    ▽問題の詳細の表示

    --------------------------------------

    こんな感じです。

    オンラインで・・・・・をクリックしても何も解決してません。

    「▽問題の詳細の表示」をクリックすると、最初の質問に書いた内容が表示されます。

     

    あと、ちなみにASP.NETではないのですが、

    レポートをWindowsFormへプレビューする仕組はClickOnceで動作検証済です。

    • 編集済み skon_alpha 2012年2月3日 8:41 詳細を追記
    2012年2月3日 8:10
  • もう少し、期待している処理の流れや、動いている部分、動いていない部分を確認して書いてみるとよいでしょう。

    また、印刷処理には何をつかれていますか? trapemiyaさんが書かれている Crystal Reports for VS2010 ではないですよね。

    たとえば、

    1.  クライアントが発行された ClickOnce アプリケーションを開く
    2.  クライアントでアプリケーションが起動する
    3.  アプリケーションから ASP.NET の Web サービスに対して印刷データを要求する
    4.  アプリケーション上で印刷データをレンダリングして印刷する

    というような流れであれば、アプリケーションが起動できているのか、ASP.NET 側にリクエストが届いているのか、といった段階的な確認ができるはずです。WebException が発生しているところから、たとえばこの例であれば 3. の段階で ASP.NET 側からエラーが返されているとか、リクエストしている URL が不正(ClickOnceから信頼されていない)などが予想されます。

     

    2012年2月4日 2:12
  • >期待している処理の流れや、動いている部分、動いていない部分を確認して書いてみるとよいでしょう

    ①Webにて伝票入力画面へ修正モードで伝票を表示し、「再発行」ボタンをクリック→②ClickOnceサービスへ依頼

    ②ClickOnceサービスにて帳票振分→③Webサービス(該当レポート生成)へ依頼

    ③Webサービスにてレポート生成

    ④ClickOnceサービスにて生成後のレポートを直接プリンタへ出力

    ②→③の部分がローカルでは動作するが、リモートではエラーになっていたようです。

    >印刷処理には何をつかれていますか?

    ActiveReport6.0J(Standard)です。

    結論が後になりましたが、この問題は昨日解決いたしました。

    原因はWeb参照の仕方が悪かったようで、

    http://localhost/・・・・・/rptService.asmx を http://サーバー名/・・・・・/rptService.asmx に変えたら動作しました。

    1週間以上悩んでましたが、当たり前のことでしたね。

    お世話になりました。

    • 回答としてマーク skon_alpha 2012年2月8日 7:43
    • 回答としてマークされていない skon_alpha 2012年2月8日 7:43
    • 編集済み skon_alpha 2012年2月8日 7:47 半角カナを全角カナへ修正
    • 回答としてマーク skon_alpha 2012年2月12日 23:43
    2012年2月8日 7:43