[Seasar-s2dotnet 79] ASP.NETでのdiconファイルパス指定について

m.okuyama e_starbucks
2005年 10月 28日 (金) 15:32:57 JST


こんにちは奥山です。

以前はASP.NET環境でのトランザクション機能の利用でお世話になりました。
現在もS2dotNetをASP.NETで動作検証しているのですが
以下、2点ほど質問がありましてメールいたしました。

※検証対象リソースはs2-dotnet-1.0.0-beta11です。


【質問1】diconファイルのinclude要素に指定するpathについて
S2Container.NETのリファレンスを見ますと、includeに指定するPathは
相対パス、絶対パス両方とも可能であると記載がありますが、
ASP.NETの場合、相対パスを指定すると次のエラーが発生します。

「呼び出されたメソッドは、動的モジュールではサポートされていません。」

ASP.NETの場合は相対パス指定は不可能なのでしょうか?

--当該エラーのスタックトレース
[NotSupportedException: 呼び出されたメソッドは、動的モジュールではサポートされていません。]
   S2.NET.Framework.Xml.XmlHandler.Start(TagHandler handler, IAttributes attributes) +62
   S2.NET.Framework.Xml.XmlHandlerParser.Parse(StreamReader input) +479
   S2.NET.Framework.Xml.XmlHandlerParser.Parse(String path) +371
   S2.NET.Framework.Container.Factory.XmlS2ContainerBuilder.Build(String path) +23
   S2.NET.Framework.Container.Factory.S2ContainerFactory.Create(String path) +247
   S2.NET.Framework.Container.Factory.SingletonS2ContainerFactory.Init() +84
   S2.NET.Framework.Container.Web.S2HttpModule.Init(HttpApplication context) +87
   System.Web.HttpApplication.InitModules() +100
   System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState state, MethodInfo[] handlers) +1330
   System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +392
   System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +256
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +414


【質問2】Web.configでの<configPath>の指定について
質問1に関連するかもしれませんが、Web.configの<configPath>にも相対パスを
指定すると同様のエラーが発生します。

--当該エラーのスタックトレース
[NotSupportedException: 呼び出されたメソッドは、動的モジュールではサポートされていません。]
   System.Reflection.Emit.AssemblyBuilder.GetManifestResourceStream(String name) +48
   S2.NET.Framework.Util.ResourceUtil.GetResourceNoException(String path, Assembly asm) +16
   S2.NET.Framework.Util.ResourceUtil.GetResourceAsStream(String path, Assembly assembly) +20
   S2.NET.Framework.Xml.XmlHandlerParser.Parse(String path) +300
   S2.NET.Framework.Container.Factory.XmlS2ContainerBuilder.Build(String path) +23
   S2.NET.Framework.Container.Factory.S2ContainerFactory.Create(String path) +247
   S2.NET.Framework.Container.Factory.SingletonS2ContainerFactory.Init() +84
   S2.NET.Framework.Container.Web.S2HttpModule.Init(HttpApplication context) +87
   System.Web.HttpApplication.InitModules() +100
   System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState state, MethodInfo[] handlers) +1330
   System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +392
   System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +256
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +414

質問1、2の趣旨は共通なのですが、ASP.NETの場合でシステム内のパス指定
を相対パスで統一したいと考えております。
log4netやibatisも検証しており、こちらではクリアできたのですが
s2dotNetでも同様のことが出来ないかと考えた次第です。

なお自前で作成したASP.NETアプリケーションでは
次のコーディングでカレントディレクトリを取得しております。
AppDomain.CurrentDomain.SetupInformation.ApplicationBase

欲を言えば相対パス、絶対パス両方に対応できると良いのですが…
以上、ご回答をお願いいたします。

-- 
m.okuyama

--------------------------------------
Know more about Breast Cancer
http://pr.mail.yahoo.co.jp/pinkribbon/



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