[seasar-dotnet:2374] Re: 【Seasar】IIS 上でAccessViolationException が発生

河野友成 [E-MAIL ADDRESS DELETED]
2014年 9月 19日 (金) 14:39:43 JST


小谷さん

 

はじめまして。

河野です。

 

ご助言ありがとうございました。

また返信遅くなり申し訳ございません。

 

ご助言の内容を一つ一つ試し結果、最終的に以下内容で稼働するように

なりました。今後影響調査を行い、恒久対応の予定です。

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

AccessViolationExceptionの例外が発生

スタックトレースによるとCastle.DynamicProxyの中でエラーが発生していた

↓

元々Seasar.DynamicProxyでAOPを使用していたが標準実装によるAOPに変更

  ・Web.configからSeasar.DynamicProxyのアセンブリロードを削除

  ・diconファイルから<component class="Seasar.Framework.Aop.Impl.DynamicAopProxyAspectWeaver" />を削除

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

 

まだ、解決という段階ではないですので、また質問をする可能性もございますが、

ご助言本当に助かりました。ありがとうございました。

 

/*--------------------------------------------------------

河野 友成

--------------------------------------------------------*/

 

 

From:  <mailto:seasar-dotnet-bounces @ ml.seasar.org> seasar-dotnet-bounces @ ml.seasar.org [ <mailto:seasar-dotnet-bounces @ ml.seasar.org> mailto:seasar-dotnet-bounces @ ml.seasar.org] On Behalf Of kotani.k
Sent: Monday, September 15, 2014 12:50 AM
To:  <mailto:seasar-dotnet @ ml.seasar.org> seasar-dotnet @ ml.seasar.org
Subject: [seasar-dotnet:2372] Re: 【Seasar】IIS 上でAccessViolationException が発生

 

河野さん

 

小谷です。

seasar-user MLでjfluteさんが仰っている通り、まずは問題範囲の絞り込みを

してみては如何でしょうか。

 

思いつく限りでは、

・Seasar.NET 1.3.19を使用した場合も同様のエラーが発生するか?

・AOPを使わない(Interceptor系のコンポーネントをdiconから外す)場合は問題のエラーは発生しないか?

・Windows Server 2012 上からWindows Server 2012 R2 にした際に設定周りがリセットされていないか?

・(切替可能かは不明ですが)IISのバージョンを8.0に戻した場合も同様のエラーは発生するか?

・Quillを使用した場合も同様のエラーが発生するか?

 

以上です。

よろしくお願いします。

 

 

 

2014年9月12日 15:36 河野友成 < <mailto:kono.tomonari @ tis.co.jp> kono.tomonari @ tis.co.jp>:

はじめまして。
河野と申します。

初めてメールいたしますので、色々至らぬ点もあるかと思いますが、
よろしくお願いいたします。

早速ですがIIS上の  <http://ASP.NET> ASP.NET 2.0アプリケーションを実行した際に
AccessViolationExceptionエラーが
発生しております。Seasarバージョンは「1.3.18」.NET のバージョンはアプリ要件
から「3.5」を使用しております。
原因が全く分からない状況です。エラー内容は以下になります。

(エラー内容)
----------------------------------------------------------------------------
----------------------------
例外情報:
     例外の種類: AccessViolationException
     例外メッセージ: 保護されているメモリに読み取りまたは書き込み操作を行お
うとしました。
                     他のメモリが壊れていることが考えられます。
スタック トレース:
   場所 System.Reflection.Emit.TypeBuilder._TermCreateClass(Int32 handle,
Module module)
   場所 System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
   場所 System.Reflection.Emit.TypeBuilder.CreateType()
   場所 Castle.DynamicProxy.Builder.CodeBuilder.AbstractEasyType.BuildType()
   場所 Castle.DynamicProxy.Builder.CodeBuilder.AbstractEasyType.BuildType()
   (・・・省略・・・)
   場所 Seasar.Framework.Container.Impl.S2ContainerImpl.Init()
   場所
Seasar.Framework.Container.Factory.SingletonS2ContainerFactory.Init()
   場所 ASP.global_asax.Application_Start(Object sender, EventArgs e)
----------------------------------------------------------------------------
----------------------------

マイクロソフトへ問合わせを行いましたところ、Seasarのバージョンを変更して試し
てくださいとの
ことでしたので実施しましたが、現象は変わらずでした。
後解決手段でSeasarのメーリングリストへ問合わせしてみてはどうかということで、
今回メールした次第です。

(マイクロソフト問合わせ内容)
----------------------------------------------------------------------------

----------------------------
[タイトル]
IIS 上の  <http://ASP.NET> ASP.NET 2.0 アプリケーションを実行した際に AccessViolationException
が発生

[お問い合わせの概要]
Windows Server 2012 R2 上の IIS 8.5 上で S2Container.NET を使ったアプリケー
ションを動作させている。このアプリケーションに対してアクセスを実施すると、以
下の例外が発生し、アプリーケーションが動作しない。対象のアプリケーションは、
Windows Server 2012 上では動作した。Windows Server 2012 R2 上で対象のアプリ
ケーションが動作するようにしたい。

例外情報:
     例外の種類: AccessViolationException
     例外メッセージ: 保護されているメモリに読み取りまたは書き込み操作を行お
うとしました。
                     他のメモリが壊れていることが考えられます。
スタック トレース:
   場所 System.Reflection.Emit.TypeBuilder._TermCreateClass(Int32 handle,
Module module)
   場所 System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
   場所 System.Reflection.Emit.TypeBuilder.CreateType()
   場所 Castle.DynamicProxy.Builder.CodeBuilder.AbstractEasyType.BuildType()
   場所 Castle.DynamicProxy.Builder.CodeBuilder.AbstractEasyType.BuildType()
   (・・・省略・・・)
   場所 Seasar.Framework.Container.Impl.S2ContainerImpl.Init()
   場所
Seasar.Framework.Container.Factory.SingletonS2ContainerFactory.Init()
   場所 ASP.global_asax.Application_Start(Object sender, EventArgs e)

[お伝えした内容]
今回の現象発生のスタックトレースを見ると、 <http://ASP.NET> ASP.NET の Application_Start のタ
イミングで
Seasar.Framework.Container.Factory.SingletonS2ContainerFactory.Init() を呼び
出し、
その呼び出しの中で、AccessViolationException が発生しております。

スタックからは実際にアプリケーションの画面などにはアクセスした形跡は確認でき
ません。
このような状況を鑑みると、まずは Seasar の動作で何か問題がないかをご確認いた
だくことをお勧めいたします。
S2Container.NET のバージョンは 1.3.12 と伺っておりますが、こちらのバージョン
を変えてみて
どうなるか、ご確認をいただきたいと存じます。以下を見ると、.NET 2.0 で利用可
能なバージョンとして
1.3.12 より新しいバージョンもいくつか確認できます。

     <http://s2container.net.seasar.org/ja/download.html#past> http://s2container.net.seasar.org/ja/download.html#past

バージョンの変更でも特に動作が変わらないようでしたら、改めてご相談いただけな
いでしょうか。
できることがないかを検討いたします。

また、あわせて S2Container.NET において、Application_Start 内で
Seasar.Framework.Container.Factory.SingletonS2ContainerFactory.Init() を呼び
出し
AccessViolationException が発生するようなことがないか、などをご確認いただい
てもよいかと存じます。
私がインターネット上のサイトを確認する限り、以下のように Seasar 向けのメーリ
ングリストもあるようです。

     <http://ml.seasar.org/> http://ml.seasar.org/
----------------------------------------------------------------------------
----------------------------

解決策がご存知の方、不足事項等ございましたら、お手数ですがご連絡頂けたらと思
います。

以上の件よろしくお願いいたします。

/*--------------------------------------------------------
河野 友成
--------------------------------------------------------*/




_______________________________________________
seasar-dotnet mailing list
 <mailto:seasar-dotnet @ ml.seasar.org> seasar-dotnet @ ml.seasar.org
 <https://ml.seasar.org/mailman/listinfo/seasar-dotnet> https://ml.seasar.org/mailman/listinfo/seasar-dotnet

 

-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20140919/8f3ee672/attachment.html>


seasar-dotnet メーリングリストの案内