我正在玩NHibernate 3 alpha,但很难设置我的SessionFactory。
我有以下内容:
var config = new Configuration().Configure();
_sessionFactory = config.BuildSessionFactory();
但是,在提供的3 alpha下载dll中,没有提供代理工厂类。即NHibernate.ByteCode.Castle,NHibernate.ByteCode.LinFu,以及nHib 2.x提供的Spring版本不在这里提供。
所以在3 alpha包中,我查看了NHibernate.Example.Web并使用了它提供的NHibernate.ByteCode.LinFu;这个例子在它的config.hbm中使用它。
所以,我的hibernate.cfg.xml有
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
在创建Factory
时,第二行因上述代码失败而失败NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException未被用户代码处理 Message =无法在配置代理工厂类期间加载类型'NHibernate.ByteCode.LinFu.ProxyFactoryFactory,NHibernate.ByteCode.LinFu'。 可能的原因是: - 未部署NHibernate.Bytecode提供程序程序集。 - 用于初始化&gt; session-factory部分的'proxyfactory.factory_class'属性的typeName格式不正确
但是,LinFu引用设置为CopyLocal,并深入研究堆栈跟踪,这给出了:
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&amp; rpc)
在System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) InnerException:System.IO.FileLoadException
Message =无法加载文件或程序集'NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040) 来源= mscorlib程序 FileName = NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null FusionLog ====预绑定状态信息===LOG:DisplayName = NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null (完全指定的)
日志:Appbase = file:/// C:/Dev/SilverTracker/src/SilverTracker/SilverTracker.Web.Services/
日志:初始PrivatePath =&gt; C:\ Dev \ SilverTracker \ src \ SilverTracker \ SilverTracker.Web.Services \ bin
调用程序集:NHibernate.ByteCode.LinFu,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null。
内在的执行本身:
{“无法加载文件或程序集'NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT异常) :0x80131040)“:”NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null“}
因此,据我所知,它找到了该文件,但它与nHib 3程序集无法兼容。
所以,我有点亏!
配置是否已更改为3?我正在努力寻找任何其他例子来禁止3组件提供的那些。
这是一个.NET 4.0 WCF服务。我知道我可以使用2.x,但我尝试了新的linq提供商的好处。
提前致谢。
答案 0 :(得分:1)