1

これを投稿する前に、私はSOからのすべての提案を必ず読んだ。

現在、このアプリケーションには2つのプロジェクトがあります。1つはWebアプリケーション用で、もう1つはEntity Frame作業用(バージョン4.0)です。ここでQuickbooksプロバイダーの説明のためにRSSBusのツールを試しています 。セットアップは簡単でした。すべてのエンティティにQBのプレフィックスを付け、QB.ttファイルを生成しました。問題はありません。両方のedmxファイルは、共有名前空間(SMR.Model)を使用して同じプロジェクトに格納されます

プロジェクトを再構築して実行すると、global.asax.csファイルがエラーをスローしました。

DefaultModel.RegisterContext(typeof(SMR.Model.SMREntities),
new ContextConfiguration() { ScaffoldAllTables = true });

与えられたエラーは次のとおりです。

指定されたキーが辞書に存在しませんでした。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとそれがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.Collections.Generic.KeyNotFoundException:指定されたキーがディクショナリに存在しませんでした。

ソースエラー:36行目:public static void RegisterRoutes(RouteCollectionroots)37行目:{38行目:DefaultModel.RegisterContext(typeof(SMR.Model.SMREntities)、39行目:new ContextConfiguration(){ScaffoldAllTables = true}); 40行目:

ソースファイル:C:\ all \ src \ smr \ smr.pl.Web \ Global.asax.cs行:38

スタックトレース:[KeyNotFoundException:指定されたキーがディクショナリに存在しませんでした。] System.Collections.Generic.Dictionary 2.get_Item(TKey key) +9624829 System.Web.DynamicData.ModelProviders.EFDataModelProvider..ctor(Object contextInstance, Func1 contextFactory)+800 System.Web.DynamicData.ModelProviders.SchemaCreator.CreateDataModel(Object contextInstance、Func 1 contextFactory) +126 System.Web.DynamicData.MetaModel.RegisterContext(Func1 contextFactory、ContextConfiguration configuration )+378 System.Web.DynamicData.MetaModel.RegisterContext(Type contextType、ContextConfiguration configuration)+88 smr.pl.Web.Global.RegisterRoutes(RouteCollectionroots)in C:\ all \ src \ smr \ smr.pl.Web \ Global.asax.cs:38 smr.pl.Web.Global.Application_Start(Object sender、EventArgs e)in C:\ all \ src \ smr \ smr.pl.Web \ Global.asax.cs:91

[HttpException(0x80004005):指定されたキーがディクショナリに存在しませんでした。] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context、HttpApplication app)+9170941 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext、HttpContext context、MethodInfo []ハンドラー)+131 System.Web.HttpApplication.InitSpecial(HttpApplicationState state、MethodInfo []ハンドラー、IntPtr appContext、HttpContext context)+194 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext、HttpContext context)+339System.Web.Hosting。 PipelineRuntime.InitializeApplication(IntPtr appContext)+253

[HttpException(0x80004005):指定されたキーがディクショナリに存在しませんでした。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9090044 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+97 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr、HttpContextコンテキスト)+256

問題を解決するために何ができるかについてはほとんど何もしませんでしたが、.configファイルを調べて、それらが間違っているかどうかを確認し、すべてOKとしてチェックアウトしました。

<add name="SMREntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=SMR;Persist Security Info=True;User ID=sa;Password=XXX;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/>
<add name="RSSQBEntities" connectionString="metadata=res://*/Model.QBOE.csdl|res://*/Model.QBOE.ssdl|res://*/Model.QBOE.msl;provider=System.Data.RSSBus.QuickBooks;provider connection string=&quot;Offline=False;Application Id=987654321;Connection Ticket=TGT-000-T_xxxxxxxxxxxxxxxxxxxx;Online Login=ohno&quot;" providerName="System.Data.EntityClient" />

構造がこのように機能しなくなる原因について何か考えはありますか?

4

1 に答える 1

0

私はついに「本当の」問題を理解しました。私は最初に2つのモデルを別々のプロジェクトに分けました。私が直面していた問題は、メタデータが同じアセンブリ名前空間に統合されていたことでした。res://*/セクションを更新して問題を解決しました

<add name="SMREntities" connectionString="metadata=res://SMR.Model/;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=SMR;Persist Security Info=True;User ID=sa;Password=XXX;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/>
<add name="RSSQBEntities" connectionString="metadata=res://SMR.QBOE/Model.RSSQBOE.csdl|res://SMR.QBOE/Model.RSSQBOE.ssdl|res://SMR.QBOE/Model.RSSQBOE.msl;provider=System.Data.RSSBus.QuickBooks;provider connection string=&quot;Offline=False;Application Id=987654321;Connection Ticket=TGT-000-T_xxxxxxxxxxxxxxxxxxxx;Online Login=ohno&quot;" providerName="System.Data.EntityClient" />

クラシック「問題は問題ではありません」。

于 2012-06-07T20:13:52.533 に答える