none
Windows Server 2003SP2からWindows Server 2012R2へ環境移行した際、Webページでエラー('80004005')が発生する RRS feed

  • 質問

  • Windows Server 2003にて運用していたWebサーバのOS移行作業を実施していますが、
    移行後の環境にクライアントからアクセスしたところ、IEブラウザ上に
    「HTTPエラー500」が表示され、Webページの表示が正常に完了しませんでした。

    環境は以下の通りです。

    移行前の環境:
    ・Windows Server 2003SP2(32bit)(WindowsUpdateパッチを適用済み※2017/6/30)
    ・Internet Information Services:6.0
    ・ASP(スクリプトエンジン):5.8 ( 23707 )

    移行後の環境:
    ・Windows Server 2012R2(64bit)(WindowsUpdateパッチを適用済み※2017/7/27)
    ・Internet Information Services:8.5
    ・ASP(スクリプトエンジン):5.8 ( 18698 )
    ・Internet Explorer:11.0.9600.18739
    ※移行後Webページのソースは移行前と同一です

    クライアントの環境
    ・Windows 7(WindowsUpdateパッチを全て適用済み※2017/7/27)
    ・Internet Explorer:11.0.9600.18738

    HTTPエラー500の詳細を調べるため、Webサーバ上で確認したところ、
    以下のエラーが発生していました。

    --------------------
    エラー '80004005'
    /xxxx/A.asp, 行 259
    --------------------

    Webサーバ上でのエラーメッセージより、
    "A.asp"の259行目を確認したところ、
    下記の通りWSCをGetObjectをしている箇所でした。

    A.asp----------------------------------------------------
       ' wscファイルパス用変数を宣言
       Dim strPath
       ' UpLoad Component を生成
       strPath = "script:" & Server.MapPath("A.wsc")
       ' GetObject関数にて"A.wsc"を実行
    259行目  Set Upload = GetObject(strPath)
    ---------------------------------------------------------

    そこでA.asp内のどこでエラーになっているのか確認するため、
    A.wsc内のオブジェクトの実行内容をテキストに出力する
    デバッグ用のコードをA.wscに埋め込み実行した結果、
    Requestオブジェクト(※1)だけ、何も出力されませんでした。

    (※1)Requestオブジェクト実行箇所:Request.ServerVariables("request_method")

    また、isobject(Request)をA.wsc内で実行した結果、falseが返ってきたので
    A.wsc内からRequestオブジェクト自体の参照が出来ていないことまでは分かりました。

    ちなみにisobject(Request)をA.asp内で実行した結果、trueが返ってきていることから
    ASPファイルからRequestオブジェクトを呼び出すことが出来ることも確認しています。

    現時点での確認結果から、WSCファイルからのRequestオブジェクトを参照出来れば
    解決できると思っています。そこで、WSCファイルからRequestオブジェクトを参照する
    方法をご教授いただければと思います。


    一応、他の方のノウハウ等も参照して、以下対策を実施しましたが結果に変化ありませんでした。

    ①スクリプト コンポーネントの登録
    "A.wsc"を右クリックし「Register」

    下記メッセージにて終了
    「C:\Windows\System32\scrobj.dll の DLLRegisterServer and DllInstall は成功しました。」

    ②下記Microsoftサポートページを参照させていただき、
    IISのASP詳細設定の「最大要求エンティティ ボディ制限」を「1073741824」に設定して、
    「web.config」内に「maxRequestEntityAllowed=1073741824」を出力。

    ③Windows2012R2の「役割と機能の追加」でASPを設定し、IISでASPプールにマネージコードなし、classicを指定して登録。


    補足ですが、検証のためWindows Server 2008 SP2(32bit)をWebサーバとして、
    同一ソースにて動作確認した結果、正常に動作しました。
    Windows Server 2008 SP2の環境:
    ・Windows Server 2008 SP2(32bit)(WindowsUpdateパッチを適用済み※2017/7/27)
    ・Internet Information Services:7.0
    ・ASP(スクリプトエンジン):5.7 ( 19662 )

    2017年8月9日 1:03