[seasar-dotnet:135] ASP.NET Webサービスで EmptyRuntimeException が発生する

Toru Uetani goodspeed @ mail.name
2006年 3月 1日 (水) 21:17:45 JST


はじめまして、上谷と申します。
今困っていることがあり、解決方法が見つからないのでMLに参加させていただきました。
何か思い当たることがあればアドバイスをいただけないでしょうか。

-----現象---------------------------------------------------------
現在VS2005を使用してASP.NET Webサービスを開発しています。
そこでクラス間の依存関係をS2.NETで解決しようとしました。
使用しているSeasar.dllはHP上で配布されているものではなく、
VSUG(http://vsug.jp/tabid/63/forumid/45/postid/294/view/topic/Default.aspx)上の
投稿を参考にコンパイルしたものを使用しています。
また、HPを参考にWeb.configにS2HttpModuleの設定を記述しています。

上記のようにしてWebサービスを作成し、それをWinアプリから使用しています。
Webサービスでは自作のSOAP拡張でlog4netによりログを出力しています。

概ね問題はないのですが、まれにEmptyRuntimeExceptionが発生してしまいます。
さらに困ったことに、その現象が発生するタイミングは不定です。
 VS上からWinアプリをデバッグ実行→Webサービスを呼ぶ→例外発生
という時もあれば、
 VS上からWinアプリをデバッグ実行→Webサービスを呼ぶ→しばらく普通に使える
 →Webサービスを呼ぶ→例外発生
という時もあります。

S2.NETの機能はDIしか使用しておらず、AOPやトランザクションは使用していません。
今は自宅なのでソースがありませんが、特におかしなことはしていないつもりです。
app.diconはHPのサンプルを参考に、以下のように自動バインディングで記述しています。
<components>
<!-- IClassA を実装したクラス。IClassBを取得するプロパティを持つ。 -->
<component class="ClassA" />
<!-- IClassB を実装したクラス。 -->
<component class="ClassB" />
</components>

-----使用環境-----------------------------------------------------
OS:WindowsXPsp2 pro
IDE:VS2005 Team Edition for SD
Webサーバ:VS2005付属のASP.NET開発サーバ

-----発生した例外--------------------------------------------------
[ESSR0007]S2Container should not be null or empty
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。
エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: Seasar.Framework.Exceptions.EmptyRuntimeException:
[ESSR0007]S2Container should not be null or empty

ソース エラー:

現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害
の原因および発生場所に関する情報については、下の例外スタックトレースを
使って確認できます。

スタック トレース:

[EmptyRuntimeException: [ESSR0007]S2Container should not be null or empty]
Seasar.Framework.Container.Factory.SingletonS2ContainerFactory.get_Container()
+63
Seasar.Framework.Container.Web.S2HttpModule.context_AcquireRequestState(Object
sender, EventArgs e) +54
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
+138
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously) +65

-----web.config抜粋--------------------------------------------------
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <section name="seasar" type="Seasar.Framework.Xml.S2SectionHandler, Seasar" />
  </configSections>
  <seasar>
    <configPath>app.dicon</configPath>
    <assemblys>
      <assembly>参照している自作アセンブリ</assembly>
    </assemblys>
  </seasar>
  <log4net>略</log4net>
  <!--プロキシ設定 -->
  <system.web>
    <httpModules>
      <add name="S2HttpModule" type="Seasar.Framework.Container.Web.S2HttpModule, Seasar" />
    </httpModules>
    <webServices>
      <soapExtensionTypes>
        <add type="SOAP拡張" />
      </soapExtensionTypes>
    </webServices>
  以下VSで生成したままなので略
-- 
┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏

 ┏━━━┓ 上谷 徹(Toru Uetani)
 ┃\_/┃ mail:goodspeed @ mail.name
 ┗━━━┛
┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏




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