2

「自分のマシン上で」完全に実行されているアプリケーションがありますが、本番環境にデプロイするとサイトは機能しますが、エンティティ フレームワークのコードの 1 つに問題があります。

私の環境は、vs2013rc を実行している win8.1 マシンです。本番環境は、2008r2 を実行しているサーバーです。どちらも sql2012 を実行しています。

トラブルシューティングを試みるために、データベースを本番環境からローカルの開発環境にコピーしました。ローカル マシンで IIS をセットアップしようとしましたが、うまくいきました

EXメッセージ

要求されたタイプの 1 つ以上を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。

>STACK TRACE
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at System.Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly()
   at System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load()
   at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData)
   at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage)
   at System.Data.Metadata.Edm.ObjectItemCollection.ExplicitLoadFromAssembly(Assembly assembly, EdmItemCollection edmItemCollection, Action`1 logLoadMessage)
   at System.Data.Metadata.Edm.MetadataWorkspace.ExplicitLoadFromAssembly(Assembly assembly, ObjectItemCollection collection, Action`1 logLoadMessage)
   at System.Data.Entity.Internal.InternalContext.TryUpdateEntitySetMappingsForType(Type entityType)
   at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
   at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
   at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
   at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source, Expression`1 predicate)
   at WebApplication.Areas.Config.Repository.ConfigRepository.InsertUpdateConfiguration(ConfigurationModel model)

私のコードは特別なものではありません

public void InsertUpdateConfiguration(ConfigurationModel model)
{
    try
    {
        using (var db = new Entities())
        {
            LogMessage("InsertUpdate - "+model.StoreName);
            if (model == null)
            {
                LogMessage("model is null????????");
            }
            else
            {
                LogMessage("model is good - "+model.BusinessId);
            }
            var checkIfAdded = db.Configurations.SingleOrDefault(s => s.BusinessId == model.BusinessId);
            LogMessage("checkif added complete");
            //  LogMessage("checkedifadded"+checkIfAdded.BusinessId);
            if (checkIfAdded == null)
            {
                LogMessage("checkifadded = null");
                var config = new Configuration()
                {
               ....
                };
                db.VendConfigurations.Add(config);                   
            }
            else
            {
                LogMessage("checkifadded != null");

            }
            LogMessage("saving vend config");
            db.SaveChanges();
            LogMessage("Saved config");
        }
    }
    catch (Exception ex)
    {
        LogMessage("booooooo "+ex.Message);
        LogError(ex);
    }
}

コードは次の行で失敗しています

var checkIfAdded = db.Configurations.SingleOrDefault(s => s.BusinessId == model.BusinessId);

ロギングの次の行が呼び出されないため。

4

0 に答える 0