none
4月21日のWindowsUpdate後、新規のaspxファイルが実行できなくなった RRS feed

  • 質問

  • (本トラブルは未解決ですが質問者は諦めてOS再インストールを行いました)

    よろしくお願いいたします。

    本日WindowsServer2008を開いたところ、Windowsアップデートが行われておりました。
    昨日の15時ごろまでサーバー上で作業し、その時は何もかもが正常に動作しておりました。WindowsUpdateのログは17時30分となります。
    その後いつも通り、プロジェクトを更新しようとしたところ、更新したaspxファイルが軒並み次のようなエラーとなり実行できなくなってしまいます。
    もともと存在するファイルは実行可能ですが、更新する必要がある状況です。

    例外の詳細: System.Runtime.InteropServices.ExternalException: プログラムを実行できません。実行しようとしたコマンドは "C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe" /noconfig @"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\43f530ce\45733bb3\5gbud7ux.cmdline" です。

    [ExternalException (0x5): プログラムを実行できません。実行しようとしたコマンドは "C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe" /noconfig @"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\43f530ce\45733bb3\5gbud7ux.cmdline" です。] System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) +2204 System.CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) +122 System.CodeDom.Compiler.CodeCompiler.Compile(CompilerParameters options, String compilerDirectory, String compilerExe, String arguments, String& outputFile, Int32& nativeReturnValue, String trueArgs) +195 Microsoft.VisualBasic.VBCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) +466 System.CodeDom.Compiler.CodeCompiler.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch(CompilerParameters options, String[] fileNames) +197 System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromFile(CompilerParameters options, String[] fileNames) +25 System.Web.Compilation.AssemblyBuilder.Compile() +775 System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +71 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +298 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +261 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +126 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +62 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +33 System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path) +37 System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +307 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

    恐らく、「C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\43f530ce\45733bb3\」に一時ファイルが作成される予定なのだろうと思いますが、ファイルも作成されることはありませんでした。
    そのため、権限問題かなと思い、考えられるアカウント(Network ServiceやCreator Ownerなど)へ権限を割り振りますが、改善されず、調べたところ、C:\Windows\Temp に割り当てるとよい、という書き込みがあるサイトもあり、Tempに権限を足してみたりもしましたが解決されません。

    心当たりがなく、大変焦っております。
    なおこの問題は本当に急ぎで解決する必要があり、他社フォーラムへマルチポストする恐れがありますが、解決時は必ず報告に上がります。

    どうかご対応よろしくお願いいたします。

    --- 追記1 ---

    テストプロジェクトを作成し、次のようなエラーになりました。

    プログラムを実行できません。実行しようとしたコマンドは "C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe" /noconfig @"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\test\da723fed\59cc3c06\q19hnbrv.cmdline" です。

    test は、もともと存在しないフォルダでしたが、test以下は作成されました。
    しかし、q19hnbrv.cmdline は作成されませんでした。
    testディレクトリをを削除しもう一度実行しましたが、同じ状況でした。

    --- 追記2 --- (2015.04.24 16:40)

    1.再起動を行っても症状が変わりませんでした
    2.IISを一度削除し、再インストールを試みましたが変わりませんでした

    ---  追記3 --- (2015.04.25)
    救済不能と判断し、 OSの再インストールを行うこととなりました。
    アドバイスいただいた皆様、ありがとうございました。


    • 編集済み 野々村 2015年4月25日 1:51 トピック閲覧者が誤って開かないよう文頭に追加
    2015年4月22日 2:42

すべての返信

  • 私も以前、同様の現象にあたったことがありました。

    昔の話でうろ覚えなのですが、その時はサーバで動作していたウィルス対策ソフトが邪魔をして発生していたという記憶があります。


    きよくらならみ

    2015年4月22日 3:00
  • ちょっとググってみると同じ問題が報告されてますね。

    Access is denied for vbc.exe RSS
    http://forums.iis.net/p/1224699/2099310.aspx?Access+is+denied+for+vbc+exe

    そこにある回答が役に立ったかどうかは書いてないので分かりませんが、一応 IIS_IUSRS グループが以下のフォルダに対する権限を持っているか調べてみてはいかがですか。

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

    ちなみに、自分の開発環境(Vista SP2 / IIS7)では、IIS_IUSRS グループは Temporary ASP.NET Files フォルダに対し、変更、読み取りと実行、フォルダ内容の一覧表示、読み取り、書き込み、特殊なアクセス許可を持つように設定されてます。

    #マルチポストされたのであれば、そのポスト先の URL を書いてください。


    【追伸】

    IIS_IUSRS が何かについては以下のページを見てください。

    IIS 7.0 での組み込みユーザーとグループ アカウントとは
    https://technet.microsoft.com/ja-jp/library/dd939094.aspx

    "ワーカープロセスのトークンに対して実行時に IIS_IUSRS メンバーシップが自動的に追加されるようになりました。"

    • 編集済み SurferOnWww 2015年4月22日 3:15 追伸追加
    2015年4月22日 3:11
  • ご回答ありがとうございます。

    Symantec Endpoint Protectionが導入されています。
    停止させても結果変わらずでした。

    再起動するとキャッシュの関係上他のプログラムも動かなくなる恐れもあり、最終手段としたいため、現在は再起動を試しておりません。

    2015年4月22日 3:15
  • ご回答ありがとうございます。
    現時点ではまだマルチポストはしておりません。

    確認したところ、IS_USERSの権限は次の通りです。
    変更、読み取りと実行、フォルダの内容の一覧表示、読み取り、書き込み、特殊なアクセス許可

    なので、同じ環境であると思います。

    2015年4月22日 3:18
  • では、こちらの記事はどうですか?

    Cannot execute a program. The command being executed “dqiitg0c.cmdline”
    http://stackoverflow.com/questions/2430536/cannot-execute-a-program-the-command-being-executed-dqiitg0c-cmdline

    偽装が有効になっている Web アプリに匿名アクセスすると、IIS によって使用される既定の匿名アカウント(ISUR)がアクセスに行くことが原因の問題ということで、質問者さんのケースには該当しないかもしれませんが。

    ご自分でもググって調べてください。日本語のサイトはダメでも英語のサイトまで検索範囲を広げると多々ヒットするはずです。例えば、以下の気ワードで試してみてください。

    system.runtime.interopservices.externalexception cannot execute a program


    あと、最後の手段かもしれませんが、Temporary ASP.NET Files の中のファイルを削除すると直ったという話もよく聞きますので、それが可能であればお試しください。(もちろんバックアップは取った上で)
    • 編集済み SurferOnWww 2015年4月22日 3:55 あと、・・・以下を追記
    2015年4月22日 3:49
  • ありがとうございます。

    ちょうど同じ記事を見て、試していたところでしたが、それでもだめでした。
    https://support.microsoft.com/ja-jp/kb/315904/ja

    (私自身も相当焦っており、昼休み返上で調べている次第でございます。)


    • 編集済み 野々村 2015年4月22日 3:55
    2015年4月22日 3:55
  • レスが前後してしまい、追記部分を読まれてないかもしれないので念のため再掲します。

    最後の手段かもしれませんが、Temporary ASP.NET Files の中のファイルを削除すると直ったという話もよく聞きますので、それが可能であればお試しください。(もちろんバックアップは取った上で)

    2015年4月22日 3:59
  • 提案ありがとうございます。

    タイミングが非常に悪く、今日から今週末までは絶対停止できないシステムがあり、停止する恐れがある行為が取れない状況です。
    上の物と相談しまして、提案頂いた現存の物に影響しうる内容や、再起動のような最終手段の場合、土曜日出社で対応する流れとなっております。
    さらに調べ、それでも解決できない場合は土曜日に提案頂いた内容を試そうと考えております。
    なお、途中で予期せぬ再起動が発生した場合に備え、この書き込み後バックアップを先に取ろうと思います。


    • 編集済み 野々村 2015年4月22日 4:06 一文字抜けてしまいました
    2015年4月22日 4:04
  • Temporary ASP.NET Files の一部を削除しましたが、状況は変わりませんでした。
    詳しくは、質問本文へ追記いたしました。

    2015年4月22日 4:29
  • 救済不能と判断し、 OSの再インストールを行うこととなりました。
    アドバイスいただいた皆様、ありがとうございました。
    2015年4月25日 0:53
  • 今更ですみません。
    私も先月、Windows Update後にクライアントでActiveXが動かなくなりました。イントラシステムでしたので、緊急避難的にWindows Updateをアンインストールしてもらい、再度当たらないようにWindows Updateの対象外に設定することもしてもらいました。その後、そのActiveXを使わないようにプログラムを修正しました。
    そういうわけで、どのWindows Updateが問題を引き起こしたのか探り、とりあえずそれをアンインストールしても問題なければそのようにすれば時間が稼げ、Microsoft社による何らかの対応を待つという方法も取れたかもしれません。
    もし、Windows Updateが原因であれば、OSの再インストールでも症状が再発する可能性が低くないように思います。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 編集済み trapemiya 2015年4月25日 5:43 一部修正
    2015年4月25日 5:41
  • 4月15日公開のWindows Update をインストールしたら、

    cmd.exe や explorer.exe で、アプリケーションエラー(0xc0000018)が

    出るようになりました。OSは、Windows 7 ですが、ご質問のトライブル解決の

    ヒントになるのではないかと思い、投稿致します。

    更新の名前

    Microsoft Windows ( KB3045999) のセキュリティ更新プログラム

    この更新をアンインストールしたら、cmd.exe や、explorer.exe で

    アプリケーションエラーは出なくなりました。

    KB3045999 がインストールされて、cmd.exe や explorer.exe で

    エラーが発生しているとき、32ビット版のsyswow64\cmd.exe は、正常に実行

    できました。

    動作不良発生直前のWindows Update でインストールされた更新を

    アンインストールすると回復するのではないかと思います。

    2015年4月25日 9:14