1

私の開発環境で、Caching Application Block の CacheFactory を呼び出すと IIS がクラッシュするという問題が発生しています。実行しようとするたびに IIS がクラッシュする非常に単純な Web アプリケーションを作成しましたが、アプリケーションは Visual Studio.NET Web サーバーで正常に動作します。

次のコードは、IIS での実行時にアプリケーションがクラッシュする原因です。

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        ICacheManager cm = CacheFactory.GetCacheManager("foo");
        Response.Write(cm.GetHashCode());
    }
    catch(Exception ex)
    {
        Response.Write(Server.HtmlEncode(ex.ToString()));
    }
}

私はここでストローをつかんでいますが、誰かが同様の行動を見たことがありますか? しばらくの間、「保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。」と表示されていました。エラーが発生しましたが、今はクラッシュしています。上記のコード例では、w3wp.exe プロセスが単に失敗するため、IIS で実行するとキャッチに到達しません。これが発生すると、イベント ログに次のエントリが記録されます。

アプリケーション プール 'WebApplication1' を提供するプロセスで、Windows プロセス アクティベーション サービスとの致命的な通信エラーが発生しました。プロセス ID は「1944」でした。データ フィールドにはエラー番号が含まれます。

Enterprise Library を再インストールし、aspnet_regiis.exe を再実行しましたが、無駄でした。また、Web サーバーの役割を削除して再インストールしようとしましたが、どちらもうまくいきませんでした。

私の開発環境に関するメモ:

  • VirtualBox 4.0.4 の下の Windows Server 2008 R2 x64 Web Edition で VS.NET 2010 SP1 Beta を実行する
  • エンタープライズ ライブラリ 5.0 の使用
  • ごく最近まで、この開発サーバーのすべてが正常に動作していました。
  • この時点で、bcdedit.exe を使用してデータ実行防止がオフになっています。

編集

この問題を .NET 4.0 Framework の問題に絞り込みました。3.5 Framework に対して Web アプリケーションをビルドすると期待どおりに動作しますが、4.0 Framework に対してビルドすると、Web アプリケーションの実行時に IIS がクラッシュします。

4

1 に答える 1

4

他のインスタンスが機能する場合は、このインスタンスで 4.0 フレームワークを修復してみてください。

参照: https://superuser.com/questions/185159/how-do-i-repair-the-net-framework-on-windows-7
および
http://blogs.msdn.com/b/astebner/archive/ 2010/05/12/10011664.aspx

于 2011-03-04T16:51:31.140 に答える