sql server 2000和2005

sql server 2000和2005
2008-04-03 09:08

前一排在做项目的时候,碰到个很郁闷的问题。在vss管控下进行开发。数据库连接字符串都是<add key="DbConnectionString" value="server=localhost;uid=sa;pwd= ;database=Hospital;integrated security=SSPI"/>,因为我这边采用的数据库是sql server 2005,另一客户端的数据库是sql server 2000,但大家的表结构都是一样的。然而这里就引起了一个问题。在sql server 2000中bit数据类型tmd用0和1表示,在sql server 2005中的bit是true和false(真tmd直观)。而大家都还停留在2000年代。所以在程序中判断这个bit类型时,用0和1来区别。问题就出现了,在我这边怎么都不能正常运行,在另一客户端就正常。我想来想去都搞不通。也用vs 2005的调试工具一步一步的跟踪,就是找不到。后来一对比数据库。哦,真相大白,就是bit类型在数据库中的表现形式。所以在开发中要注意这点区别。在sql server 2000中bit数据类型是0和1,而在sql server 2005中bit类型是true和false。
在这里产生过几次问题,第一个就是由于integrated security=SSPI造成部署到iis中怎么都运行不了,dotnet framework之类的东西都是正确了的。就是运行出错,并且可以定位到打开数据库的时候产生异常。而用vs 2005自带的iis浏览时是正常的。后来在网上找资料和请教别人的时候,终于找到原因,在连接字符串中"integrated security=SSPI"表示采用的安全认证。因为用vs2005运行程序的时候,用户的身份是administrator,在部署到iis中运行程序的用户身份为network service,用户采用该安全认证,所以以network service运行时,就没有足够的权限打开数据库。呵呵,去掉integrated security=SSPI,正常了。唉,tnnd,这些都不是程序中能学到的。
最后一个问题,就是某天,我先在vs2003环境中编写代码,并运行过该环境下的程序,后来换成vs2005环境,我发现以前能正常运行的程序,就tmd变成了应用程序不可用,我考,太神奇了。我百思不得其解。算了关了vs2005,重启iis,问题依旧。上网找了一下资料,有些sb说什么由于dotnet framework1.1打了sp补丁,我日,哪有这门子事。况且我也没打过。继续查询虚拟目录属性,framework版本正常,奇怪了。不经意看到程序池,是default程序池。呵呵什么问题都出来了,就是这里,两个不同版本的framework共用一个程序池,发生冲突。之后把framework2.0版本的程序的程序池都迁移到2.0的程序池中,不采用默认程序池。重启iis,问题解决。
所以有好多东西真的要碰到才知道是什么回事。希望这里能对读者提个醒,少走点弯路。我tmd黑过锅底

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值