WR30 IIS50での使用

HOME › フォーラム › 旧サポート掲示板 › WR30 IIS50での使用

  • このトピックは空です。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #2040
    若本
    ゲスト

     VB6(SP5)を利用してWR30を使用しているDLLを作成し、そのDLLのインスタンスを内部でServer.CreateObjectで作成し利用するASPファイルを他のPCのブラウザ(IE6.1)から呼び出すとエラーが出るという現象で困っています。問題のDLL(コードは後述します)は、ローカルで実行されるプログラム(これもVB6で作成しました)から呼び出される場合は問題無く作動します。また、NT4.0とIIS4上でも問題無く作動しますが、Windows2000とIIS5.0の場合にエラーが出ます。
     DLLのコードは以下のようなものです。
    Public Function Test_CreatePrinter() As String
    Dim h_Printer As Long
    Dim strAns As String
    Dim lngErrCode As Long
    Dim blnOK As Boolean
    Dim strPname As String

    blnOK = CBool(WRInit(lngErrCode))
    If blnOK Then
    strPname = “”
    ‘blnOK = CBool(WRGetPrinterDevices(h_PRinter))
    h_Printer = WRPCreatePrinter(strPname)
    If h_Printer > 0 Then
    strAns = “OK” & h_Printer
    Else
    blnOK = WRGetLastErrorCode(lngErrCode)
    strAns = “Error WRPCreatePrinter ” & CStr(lngErrCode)
    End If
    Else
    blnOK = WRGetLastErrorCode(lngErrCode)
    blnOK = WRExit(lngErrCode)
    strAns = “Error WRInit ” & CStr(lngErrCode)
    End If
    Test_CreatePrinter = strAns
    End Function
     上記コードをクラスモジュールに貼り付け、標準モジュールには製品に添付されていたWR30VBAPI.basを加え、コンパイルします。
     このDLLを下記のASPファイルから呼び出します。
    <%
    dim Obj
    dim ans

    set obj = server.CreateObject(“WR_TEST.Class1”)
    ans = obj.Test_CreatePrinter()
    Response.contentType = “text/xml”
    Response.write ans
    %>
     このASPファイルはxmlを返しませんのでブラウザ側でエラーになりますが、変数ansの内容はわかります。
     ブラウザからhttp://www.MyServer/MyDir/MyASP.aspのかたちで呼び出すとWRPCreatePrinter()が、エラー番号10103を返します。コメントにしたWRGetPrinterDevices()も合わせて実行するとエラー番号50000を返してきます。
     いまわかっているのはここまでで、問題の所在はプログラムか、IISの設定か、PC個別の環境か、WRCIF30.DLLか判然としない状況ですので、ご検討をお願いします。

    #2041
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    >Windows2000とIIS5.0の場合にエラーが出ます。
    上記内容についてですが、ご連絡頂きましたソースをWin2k
    上で通常のアプリ(EXE)として実行した場合も含まれます
    か?また、Win2kのIIS5にて実行した場合のみ発生するのでし
    ょうか?
    私の理解不足で申し訳ありませんが、お知らせ下さい。

    ※IISは通常システムのサービスとして動作しております。ま
     た、サービスの実行ユーザーは初期値として”System”が
     使用されます。当ユーザーにはプリンターの通常使用す
     るプリンターは設定されませんので、印刷処理を行う場
     合に問題が発生します。
     対応方法としてはユーザー”System”に通常使用するプリン
     ターを追加するか、IISのサービスを動作させるユーザー
     を別のユーザーにする。又は、WingReportのプリンターオ
     ブジェクトを作成する場合にプリンター名を指定する方法
     があります。

    以上です。宜しくお願い致します。

    #2042
    若本
    ゲスト

    お送りしたコードのフォーマットがプアーでお手数をおかけしました。また、ASPのコードを貼り付けたつもりでしたが、忘れていたようで、失礼しました。
    さて、お尋ねの件ですが、Win2K上では、通常のexeとして実行した場合は問題なくプリンタは作成されます。また、dllのままでも他のexeから呼び出した場合は問題ありません。IIS5.0の管理下に入ったときだけエラーが発生します。

    また、正しいプリンタ名を指定してWRPCreatePrinter関数を呼び出すとエラー番号10101が返ってきます。

    以上です。ご検討をよろしくお願いします。

    #2043
    松嶋@ソフトウィング
    ゲスト

    ご連絡有難うございます。

    ASPで動作させた場合に不具合が発生する現象から、サービス
    (IIS)のユーザーに問題があるようです。「Administrator」
    に設定して動作確認を行って下さい。もし、正常に動作する
    のであればサービスのユーザーを変更するか、Systemユーザ
    ーにプリンター情報を設定する必要があります。

    ※「System」ユーザーについて、前回の説明が不足しており
     ました。「デフォルトプリンターが存在しない」だけでは
     なく、プリンターが存在(セットアップ)されておりませ
     ん。インストール方法につきましては、マイクロソフト社
     のHPから検索する事が出来ます。
     support.microsoft.com/default.aspx?scid=kb;ja;419321

    以上です。宜しくお願い致します。

    #2044
    若本
    ゲスト

    本件に関して非常に長い間何らご連絡を差し上げずに失礼しました。
    その後、いろいろ調べましたところ、マイクロソフトのサポート時術情報のQ184291 “COM Object Fail to Print When Called From ASP”がこの問題の正しい解決策だと思います。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。