NHibernate 问题

cdsgajxlp 2008-10-20 02:05:52
NHibernate 问题

我用NHibernate开发web应用程序,出现如下问题
开发测试阶段,用NHibernate开发程序,调试程序没有任何问题,连接数据库(SQL2000),能做任何操作,可是当我把程序发布到IIS上
报如下错误
用ADO.net连接(不用NHibernate)就没有问题
请问如何配置 网站服务器的 NHibernate

webconfig 配置如下
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="dialect">
NHibernate.Dialect.MsSql2000Dialect
</property>
<property name="connection.driver_class">
NHibernate.Driver.SqlClientDriver
</property>
<property name="connection.connection_string">
Data Source=127.0.0.1;Integrated Security=True; initial catalog=WebApplication;uid=sa;password=sa;
</property>
<mapping assembly="POJO" />
</session-factory>
</hibernate-configuration>

错误如下:


“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

用户 '2F6E0D96C\ASPNET' 登录失败。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 用户 '2F6E0D96C\ASPNET' 登录失败。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[SqlException (0x80131904): 用户 '2F6E0D96C\ASPNET' 登录失败。]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800131
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1932
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +172
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +381
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +173
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +357
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +30
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +494
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
System.Data.SqlClient.SqlConnection.Open() +111
NHibernate.Connection.DriverConnectionProvider.GetConnection() +59
NHibernate.Impl.SessionFactoryImpl.OpenConnection() +29

[ADOException: cannot open connection]
NHibernate.Impl.SessionFactoryImpl.OpenConnection() +83
NHibernate.AdoNet.ConnectionManager.GetConnection() +51
NHibernate.Impl.SessionImpl.get_Connection() +12
NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel) +239
NHibernate.Transaction.AdoTransaction.Begin() +8
NHibernate.Impl.SessionImpl.BeginTransaction() +66
_Default.Page_Load(Object sender, EventArgs e) +412
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436


...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
enihs 2008-10-21
  • 打赏
  • 举报
回复
学习一下
NIJIA72 2008-10-21
  • 打赏
  • 举报
回复
帮你顶一下
孤独侠客123 2008-10-20
  • 打赏
  • 举报
回复
Data Source=127.0.0.1;Integrated Security=True; initial catalog=WebApplication;uid=sa;password=sa;


都指定了集成验证为啥还要指定用户名和密码
两种解决方法

1. Integrated Security=True;去了
2.为这个数据库添加ASPNET用户
cdsgajxlp 2008-10-20
  • 打赏
  • 举报
回复
打补丁后问题还是没有解决
开发没有问题
一部署到ISS上就不好用了
shangwei97 2008-10-20
  • 打赏
  • 举报
回复
我看不出来配置文件有什么问题。
用过一个NHibernate的程序,关于sql2000是不是缺少sp4的补丁啊
LZ可以试试
manimanihong 2008-10-20
  • 打赏
  • 举报
回复
将主程序的dll.config中的配置也改为和webconfig一样

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧