首页 新闻 会员 周边 捐助

name="ConnectString" connectionString="data source=.;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\sd

0
悬赏园豆:100 [待解决问题]

使用这个连接字符串。

使用vs2010和sql server 2005 编写的网站,在iis和局域网上测试成功,但挂到虚拟空间后出现:

 

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

用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。

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

异常详细信息: System.Data.SqlClient.SqlException: 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。

源错误:

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


堆栈跟踪:

[SqlException (0x80131904): 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。]   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846887   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392   System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +144   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +342   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +4861315   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +31   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +433   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +499   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117   System.Data.SqlClient.SqlConnection.Open() +122   DAL.DBH.CreateConnectString() in I:\My job\sdx\sdxgonline\sdxgonline\DAL\DBH.cs:18   DAL.DBH.GetTable(String command) in I:\My job\sdx\sdxgonline\sdxgonline\DAL\DBH.cs:114   DAL.ProductKindService.SelectAll() in I:\My job\sdx\sdxgonline\sdxgonline\DAL\ProductKindService.cs:34   BLL.ProductKindManager.ShowAll() in I:\My job\sdx\sdxgonline\sdxgonline\BLL\ProductKindManager.cs:21   sdxgonline._Default.Page_Load(Object sender, EventArgs e) in I:\My job\sdx\sdxgonline\sdxgonline\sdxgonline\Default.aspx.cs:36   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35   System.Web.UI.Control.OnLoad(EventArgs e) +99   System.Web.UI.Control.LoadRecursive() +50   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

版本信息: Microsoft .NET Framework 版本:2.0.50727.3615; ASP.NET 版本:2.0.50727.3618


 
问题补充: 如果是用户权限的问题,该如何操作。怎样采用集成验证呢?
str.s的主页 str.s | 初学一级 | 园豆:100
提问于:2011-03-31 10:56
< >
分享
所有回答(7)
0

采用集成验证,用户权限有问题。建议使用SQL Server验证。

dudu | 园豆:29570 (高人七级) | 2011-03-31 11:03
具体怎么操作呢》
支持(0) 反对(0) str.s | 园豆:100 (初学一级) | 2011-03-31 11:07
0

你这是windows验证方式。

查看web.config配置文件。我的配置文件你可以看看

<connectionStrings>   

       <add name="SqlConnection" connectionString="Data Source=.;

        Initial Catalog=test;Integrated          

      Security=False;Persist Security Info=False;User ID=sa;Password=pwss;

      Connect Timeout=120" />

</connectionStrings>

 

<authentication mode="Forms">

 

基本就这两处需要更改一下。你的应该是<authentication mode="Windows">

不可照搬,我的是有sqlserver服务器的。你的是AttachDBFilename方式

lixq0203 | 园豆:282 (菜鸟二级) | 2011-03-31 11:33
按照你的写法就出现用户sa登录失败
。。。。
支持(0) 反对(0) str.s | 园豆:100 (初学一级) | 2011-03-31 11:49
0

集成验证时,在SQL Server管理器中把“'NT AUTHORITY\NETWORK SERVICE”授予你操作的库权限即可

SQL Server验证时,在连接串中写入能够连接数据库的用户名和密码就行

2012 | 园豆:21645 (高人七级) | 2011-03-31 12:35
0

你使用的是SQL 2005  Express版本的附加文件格式,这与普通的SQL Server数据文件有差异。

而空间提供商的服务器上可能是这种格式“data source=.\SQLExpress;”

请咨询空间商是否支持这种格式。
具体的连接串,请参看这里:

http://www.connectionstrings.com/sql-server-2005

邀月 | 园豆:25475 (高人七级) | 2011-03-31 14:43
0

Integrated Security=SSPI; 这个是windows集成验证,在本机是好使的。但是你连上别的机子,还是用的本机的账户,当然没权限了。

你得改成 sql server 身份登录才行。

asab | 园豆:205 (菜鸟二级) | 2011-03-31 15:29
0

你所使用的是window验证,发布到IIS上你的身份验证就不够用了,必须使用Sql server验证了

梅莲芳 | 园豆:669 (小虾三级) | 2011-04-01 09:34
0

打开sqlserver企业管理器--〉选择数据库实例-->打开“安全性”节点-->选择“登录”--〉在右面的用户区,右键“NT AUTHORITY\NETWORK SERVICE ”--〉属性--〉服务器角色,在下面的选项中选择“system administrators”-->"确定"--〉关闭企业管理器。

wlz0815 | 园豆:587 (小虾三级) | 2011-04-01 15:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册