単純なASP.NETWebサービス内でsqliteプロバイダーを使用してDBLinqを試してみようとしています。また、MonoDevelop2.4およびMono2.6.7を使用しています。monodevelopのプロジェクトは、デフォルトでローカルコピーに設定されているDbLinq.dllを参照しています。Webサービスを問題なくコンパイルできます。Monodevelopから実行しようとしたり、コマンドラインからxsp2を使用したりしようとすると、xsp2が失敗し、いくつかのエラーが発生します(以下を参照)。DBLinq.dll参照のローカルコピーのチェックを外すと、xsp2は実行されますが、コードのLinq部分は機能しません。これは、MySQLプロバイダーにも当てはまります。問題は、DbLinqが参照されてローカルにコピーされたときに、依存するアセンブリもコピーされ、アセンブリの1つがxsp2をチョークさせていることだと思います。
誰かがこれに遭遇しましたか?どうすれば問題を解決できますか、または回避策は何ですか?どんな助けでも大歓迎です。以下は、asmxコードビハインドのWebサービスメソッドのサンプルスニペットです。
[WebMethod]
public string getrecord(){string txt = string.Empty; using( DataContext context = new DataContext("DbLinqProvider=Sqlite; Data Source=openemr.db")) { var addrtbl = context.GetTable<Addresses>(); var addr = from a in addrtbl select a; foreach( var i in addr) { txt += i.City ; txt += "; "; } }
txtを返す;
}
もちろん、これはデータアクセスを実装するための良い方法ではない可能性があり、関心の分離を行う必要があります。しかし、テストの目的では、これは少なくとも機能するはずです。
xsp2を実行したときに発生するエラーは次のとおりです。上で述べたように、DbLinqが参照してローカルにコピーした依存アセンブリの1つが、これを引き起こしています。私の質問は、これが機能するようにこれをどのように修正するのが最善かということです。
user @ ubuntu:〜/ Projects / WebService / WebService $ xsp2 --address 127.0.0.1 --port 8889
**(/usr/lib/mono/2.0/xsp2.exe:2566):警告**:アセンブリ/ usr / lib / mono / gac/SystemにメソッドSystem.Web.Configuration.WebConfigurationManager::get_AppSettings()がありません。 Web / 2.0.0.0_ b03f5f7f11d50a3a / System.Web.dll、アセンブリ/usr/lib/mono/gac/Mono.Web/ 2.0.0.0 _0738eb9f132ed756/Mono.Web.dllで参照
**(/usr/lib/mono/2.0/xsp2.exe:2566):警告**:アセンブリにメソッドSystem.Configuration.ConfigurationProperty ::。ctor(string、Type、object、TypeConverter、ConfigurationValidatorBase、ConfigurationPropertyOptions)がありません/ home / ellory / Projects / WebService / WebService / bin / System.Configuration.dll、アセンブリ/usr/lib/mono/gac/ System.Web / 2.0.0.0__b03f5f7f11d50a3a/System.Web.dllで参照
**(/usr/lib/mono/2.0/xsp2.exe:2566):警告**:アセンブリにメソッドSystem.Configuration.ConfigurationProperty ::。ctor(string、Type、object、TypeConverter、ConfigurationValidatorBase、ConfigurationPropertyOptions)がありません/ home / ellory / Projects / WebService / WebService / bin / System.Configuration.dll、アセンブリ/usr/lib/mono/gac/ System.Web / 2.0.0.0__b03f5f7f11d50a3a/System.Web.dllで参照
**(/usr/lib/mono/2.0/xsp2.exe:2566):警告**:アセンブリにメソッドSystem.Configuration.ConfigurationProperty ::。ctor(string、Type、object、TypeConverter、ConfigurationValidatorBase、ConfigurationPropertyOptions)がありません/ home / ellory / Projects / WebService / WebService / bin / System.Configuration.dll、アセンブリ/usr/lib/mono/gac/ System.Web / 2.0.0.0__b03f5f7f11d50a3a/System.Web.dllで参照
**(/usr/lib/mono/2.0/xsp2.exe:2566):警告**:アセンブリにメソッドSystem.Configuration.ConfigurationProperty ::。ctor(string、Type、object、TypeConverter、ConfigurationValidatorBase、ConfigurationPropertyOptions)がありません/ home / ellory / Projects / WebService / WebService / bin / System.Configuration.dll、アセンブリで参照/usr/lib/mono/gac/ System.Web / 2.0.0.0__b03f5f7f11d50a3a/System.Web.dll例外タイプの処理TargetInvocationExceptionメッセージは呼び出しのターゲットによって例外がスローされました。IsTerminationがTrueに設定されていますSystem.Reflection.TargetInvocationException:呼び出しのターゲットによって例外がスローされました。
サーバースタックトレース:at System.Reflection.MonoCMethod.Invoke(System.Object obj、BindingFlags invokeAttr、System.Reflection.Binderバインダー、System.Object []パラメーター、System.Globalization.CultureInfoカルチャー)[0x00000] in:0 at System .Reflection.MonoCMethod.Invoke(BindingFlags invokeAttr、System.Reflection.Binderバインダー、System.Object []パラメーター、System.Globalization.CultureInfoカルチャー)[0x00000] in:0 at System.Reflection.ConstructorInfo.Invoke(System.Object [ ]パラメータ)[0x00000] in:0 at System.Activator.CreateInstance(System.Type type、Boolean nonPublic)[0x00000] in:0 at System.Configuration.ConfigInfo.CreateInstance()[0x00000] in:0 at System.Configuration .SectionInfo.CreateInstance()[0x00000] in:0 at System.Configuration.Configuration.GetSectionInstance(System.Configuration.SectionInfo config、Boolean createDefaultInstance)[0x00000] in:0 at System.Configuration.ConfigurationSectionCollection.get_Item(System.String name)[0x00000] in:0 at System.Configuration.Configuration.GetSection(System.String path)[0x00000] in:0 at System.Web.Configuration.WebConfigurationManager.GetSection(System.String sectionName、System.String path、System.Web.HttpContext context)[0x00000] in:0 at System.Web.Configuration.WebConfigurationManager.GetSection(System.String sectionName、System .String path)[0x00000] in:0 at System.Web.Configuration.WebConfigurationManager.GetWebApplicationSection(System.String sectionName)[0x00000] in:0 at System.Web.Hosting.ApplicationHost.SetHostingEnvironment()[0x00000] in:0 System.AppDomain.DoCallBack(System.CrossAppDomainDelegate callBackDelegate)[0x00000]で:0 at(wrapper remoting-invoke-with-check)System.AppDomain:DoCallBack(System.CrossAppDomainDelegate)at(wrapper xdomain-dispatch)System.AppDomain:DoCallBack(object、byte []&、byte []&)
[0]で再スローされた例外:---> System.TypeInitializationException:System.Web.Configuration.HostingEnvironmentSectionの型初期化子によって例外がスローされました---> System.MissingMethodException:メソッドが見つかりません:'System.Configuration.ConfigurationProperty。 .ctor'。---内部例外スタックトレースの終了---at(ラッパー管理対象からネイティブ)System.Reflection.MonoCMethod:InternalInvoke(object、object []、System.Exception&)at System.Reflection.MonoCMethod.Invoke(System。 Object obj、BindingFlags invokeAttr、System.Reflection.Binderバインダー、System.Object []パラメーター、System.Globalization.CultureInfoカルチャー)[0x00000] in:0---内部例外スタックトレースの終了---at(wrapper xdomain-呼び出す)System.AppDomain:DoCallBack(システム。