调用已发布的WebService中使用NH,插入数据报错,System.NullReferenceException: 未将对象引用设置到对象的实例。
但本机未发布前调试却正常插入。代码都是一样的,
this.HibernateTemplate.Save(XX);这地方报错,代码都一样,代码走向也看了 没没有其他值是null 为何在发布以后就出这问题,websevice的问题?
插入数据报错??? 没有具体的错误?
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。
在 IMSDataOperation.Services.DepartmentServiceDao.Insert(DepartmentInfo departmentInfo) 位置 G:\业余\项目源文件\IMSDataOperation\Services\DepartmentServiceDao.cs:行号 142
在 IMSService.Service.ExternalServices.CommitedWriting(Token pToken, Object pObject, TrafficType pQueryType) 位置 G:\业余\项目源文件\IMSService\Service\ExternalServices.cs:行号 73
出错代码是:
this.HibernateTemplate.Save(departmentInfo);
如果webservice 放在VS里调试 确可以插入,跟踪departmentInfo值 没发现是null
@迷失路灯: 难道是nhibernate没有配置正确?
@chenping2008: 不会哈 在插入数据之前, 我做了读数据操作,数据是可以查询到的。我想是不是webserice 有啥东西没引用?
@迷失路灯: 要不还是调试一下吧
调试了,调项目里的服务就可以,调发布后的就出问题- -
@迷失路灯: 加到进程中调试,据说是事务没有允许插入修改方法
Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition
我好像在NH里没有添加事务? 配置好事务就好了?
@迷失路灯: http://blog.csdn.net/2000killer/article/details/4046391
搜“NHibernate FlushMode”
@chenping2008: 上面说的 那几个几点都添加到web.config 我都放到NHibernate_Spring.xml里 更行service出错- -
@chenping2008: 我把<add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate12"/>删掉 就正常了,虽然加这个保持一个Session,但如果要解决还得要加上事务拦截,每次写数据的时候进行事务?数据层本身必须加上事务的。 不知 我理解是否正确,请指点下,谢谢
在服务器上用IntelliTrace记录下错误日志看看