2012-10-18 29 views
0

我在SharePoint 2010 Web應用程序上配置NHibernate。 以前它在映射和域名在一個項目中時工作正常。但是在重構過程中,我在幾個項目上拆分了解決方案。我也實現我的自定義IHttpModule的,我想初始化NHibernate的配置NHibernate配置問題:「找不到入口點」

​​

而且NHibernateManager.Init():

public static void Init(string configurationFilePath) 
    { 
     specifiedConfigurationFilePath = configurationFilePath; 
     Configure(); 
     InitSessionFactory(); 
    } 

    private static void Configure() 
    { 
     if (config == null) 
     { 
      if (string.IsNullOrEmpty(specifiedConfigurationFilePath) == false) 
      { 
       config = new Configuration(); 
       config = config.Configure(specifiedConfigurationFilePath); 
       config = Fluently.Configure(config) 
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<ItemMap>()) 
            .BuildConfiguration(); 
      } 
      else 
      { 
       config = Fluently.Configure() 
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<ItemMap>()) 
            .BuildConfiguration(); 
      } 
     } 
    } 

而且在BuildConfiguration()我有很奇怪的錯誤(的InnerException): 「沒有找到入口點。」堆棧跟蹤顯示獲取映射信息是導致錯誤的原因:

at System.Collections.Generic.IDictionary`2.TryGetValue(TKey key, TValue& value) 
at NHibernate.Cfg.Configuration.GetClassMapping(String entityName) 
at NHibernate.Cfg.Configuration.GetClassMapping(Type persistentClass) 
at FluentNHibernate.PersistenceModel.Configure(Configuration cfg) 
at FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration cfg) 
at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration() 

所有程序集都位於GAC中。我試圖將它們複製到_app_bin或bin中,但沒有成功。

UPDATE

請幫幫我!我堅持這個奇怪的問題:(

回答

0

我找到了解決方案

我的配置線看看:

config = new Configuration(); 
config = config.Configure(specifiedConfigurationFilePath); 
config = Fluently.Configure(config) 
       .Mappings(m => m.FluentMappings.AddFromAssemblyOf<ItemMap>()) 
       .BuildConfiguration(); 

我創造新的NHibernate的配置對象,將其傳遞給fluent- nhibernate靜態初始化方法,這是事情發生的一個點,Fluent-nhibernate不能從指定的文件中取得配置,而是可以指定nhibernate配置對象,並指定文件路徑,然後用它來構建配置。 我的應用程序的先前版本是在一個大會和這種配置方式見毫秒工作正常。但是當我分手時,問題出現了。 所以要解決這個問題,我應該從web.config文件中取得nhibernate配置信息。我無法像單組合項目中那樣將定時器作業和Web應用程序的設置合併到一個文件中。所以,我必須有幾個配置文件,並總是用經典臺詞那樣:

Fluently 
.Configure() 
    .Mappings(p => p.FluentMappings 
        .AddFromAssemblyOf<ItemMap>()) 
        .BuildConfiguration() 

它似乎是某種流利,NHibernate的錯誤什麼的...