开发环境: 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:[email protected]
※在域内开发,也就是说,两台机器都加入了域。代码大致:把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:[email protected]
使用windows和sql server混合认证
在远程连接里,同时使用TCP/IP和named Pipes,重启SQLserver服务
防火墙是否阻止了端口
启动SQL Server Browser服务
<add key="ConnectionString" value="server=localhost\sqlexpress;uid=sa;pwd=123456;database=master"/>
IIS环境: winxp的computer名/APNET
↓↓↓
ASPNET
我刚才把windows防火墙设置为无效(就是关闭防火墙吧。我用的是日文系统,中文系统是什么我忘了),
可以连接数据库了,并取出数据了。
也就是说,我的防火墙没有设置好。另外,我的数据库服务器的Sql Server Configuration Manager中的SQL Server Browser服务是实行中状态,
已经启用了。
解决办法1:
这好像叫伪装,第一次听说。
在 Web.config 的System.web 标签里设置以下的内容
<identity impersonate="true"
userName="domain\username"
password="<secure 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的机器(找了一台做数据库服务器)上,试验成功。我马上找项目经理汇报,看看采用那个方案。