作者:手机用户2602919547 | 来源:互联网 | 2023-05-18 13:48
开发环境:winXPIIS5.1,VS2008,ASP.net,windows2008,SQLSERVER2008(IIS和SQLServer在分别在两台机器上)※在域内开发,也就
开发环境: winXP IIS5.1,VS2008, ASP.net,windows 2008, SQL SERVER2008 (IIS和SQLServer在分别在两台机器上)
※在域内开发,也就是说,两台机器都加入了域。
代码大致:把DB中某个表中的数据个数取出(select count(*) from TableA),显示到画面。
在VS2008开发环境中可以正常连接DB,但是发布到IIS中后,在连接(openDB)数据库的时候,出现以下错误。
用的连接的认证方式是windows认证(Integrated Security=SSPI;),SQL SERVER2008的认证设置是混合认证。
cOnnectionString="Server=XXX\SQLSERVER2008;Initial Catalog=AAAMaster;Integrated Security=SSPI; Persist Security Info=False;Connect Timeout=40;
用SQL Server认证方式也连接失败。
System.Data.SqlClient.SqlException: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした)
错误信息的意思是,
确立对服务器的连接的时候错误发生了。如果连接到SQL Server 2005 的时候时候这个错误发生了,有SQL Server 的既定的设定不变得准许远程连接的事作为错误的原因的可能性。 (没开对provider:名字附着管子 服务提供商, error:40- SQL Server 的连接)
通过下面的代码,可以判断当前的用户名。
this.LabelUser.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
IIS环境和VS2008环境,访问web时用的用户名是不一样的。
VS2008: 域名/域用户
IIS环境: winxp的computer名/APNET
在SQLSERVER上,有一个セキュリティ(安全) >> ログイン(登陆)
可以在这里添加用户,目前已经添加了我的域用户了,所以,在VS2008上,可以访问数据库。
但是没有添加我的ASPNET用户,所以不能被SQLServer认证,所以连接数据库失败。
怎么往SQLSERVER添加我的机器的ASPNET用户呢??????????
寻找正在学习SilverLight的朋友!!!
msn:lixing2002115@hotmail.com
11 个解决方案
需要在数据库服务器上启用 SQL Browse服务。另外,数据库的端口设置检查是否正确,并且没有被防火墙阻止
SQL Server 的TCP/IP服务禁止的,打开它重启就行了
纠正错误
IIS环境: winxp的computer名/APNET
↓↓↓
ASPNET
lz需要好好补习一下ASP.NET impersonation和delegation。
http://msdn.microsoft.com/en-us/library/ms998351.aspx
汇报结果
先说一句,感谢各位给我这么多建议,非常的谢谢啊。
各位给我的建议我没有都试,现在已经有2个方法可以连接数据库了。
解决办法1:
这好像叫伪装,第一次听说。
在 Web.config 的System.web 标签里设置以下的内容
userName="domain\username"
password=""/>
用户名和密码就用Windows登陆域帐户就可以了。
解决办法2:
http://msdn.microsoft.com/ja-jp/library/ms175043.aspx
① [Windows ファイアウォール] ダイアログ ボックスで、[例外] タブをクリックし、[プログラムの追加] をクリックします。
② [参照] をクリックし、ファイアウォール経由でアクセスする SQL Server のインスタンスに移動して、[開く] をクリックします。既定では、SQL Server は C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Sqlservr.ex にあります。
③ [OK] を 2 回クリックし、Windows ファイアウォール プログラムを閉じます。
目前已经在XP的机器(找了一台做数据库服务器)上,试验成功。我马上找项目经理汇报,看看采用那个方案。