文档章节

一个Net框架升级引发的血案

max佩恩
 max佩恩
发布于 2014/07/11 18:26
字数 662
阅读 22
收藏 0

##背景 07年给客户做了个电子政务系统,用Asp.net,SqlServer2000(各用独立服务器),中间对Net框架进行过升级,到了Net3.5。去年客户升级了数据库,使用SqlServer2008R2。为了运维,我也打算在IIS服务器上安装SqlServer2008的管理工具,然而,该工具需要Net3.5SP1,而这个Sp1无论如何都装不上,报1603错误。随后找了第三方工具来做数据运维。

##问题 最近要给客户升级,结果更新后提示找不到CSC.exe 查看Windows目录下的Net版本,发现只到3.0 -- 此时哥已经忘记之前曾经装有3.5了 赶紧找回旧的版本,还是同样的错误! 以为安装Net3.5可解决问题,于是从网上下载到本机,再从本机复制到服务器(VPN),花了2小时 开始安装,还是1603错误 尝试各种网上找得到的方法:查安装日志、用专用工具删除低版本Net框架、设置注册表、关闭杀毒软件等,依然无解。只能安装到Net3.0,就再也无法前进一步。时间来到晚上12点。 Net3.5装不上,访问网站则报找不到CSC错误(值得注意的是,其他配套网站还是正常的) 找到一个更旧的系统版本(09年的备份),居然不出错,好吧,暂时将就使用了。。。时间来到半夜2点

##第二天 中午继续折腾,居然发现是Web.Config的问题,里边写明了要用Net3.5,而操作系统上并没有这个!所以才老是报找不到csc.exe,因为他需要的是3.5的。

##解决 客户从半年前的系统备份恢复旧的操作系统(虚拟化云计算就是好),哥再次更新,搞定。

分析 SqlServer2008在安装Net3.5Sp1失败后,也造成了原有的Net3.5丢失。而我更新系统后,引起Asp.net的重新编译,于是出错。而恢复到最新的备份时,也因为该备份基于Net3.5而出错。09年的备份其实是Net2.0的。

##小结 ###1、生产环境遵循墨菲定律,不管安装什么东西都可能引起错误。就这个莫名的1603问题,损失了6小时业余时间!这个时间去看世界杯,去看电影,去见女同学。。。无论做什么都比查这个不靠谱的1603错误强。 ###2、一定要做好备份。这次幸好用户采用了虚拟化,备份也还算及时,同时数据库采用双机系统。

© 著作权归作者所有

共有 人打赏支持
下一篇: C#
max佩恩
粉丝 6
博文 115
码字总数 37484
作品 0
南宁
私信 提问
一场版本升级引发的性能血案 - 王者归来

上次老码农在一场版本升级引发的性能血案 - 之数据历险一文中讲得口吐白沫, 最后还是没有一个结果, 反而被 OSCer 们各种吐槽: "看得我快快精尽人亡了""看着一头雾水""一脸懵逼进来,一脸懵逼...

罗格林
2018/06/04
0
0
ADB server didn't ACK问题

遇到了ADB Serverdidn't ACK的问题,重启电脑也不管用。 参考一个豌豆荚引发的血案,才知道,5037端口被占用会导致adb服务失效。 按照上述博文中的命令查找,发现是一个叫做tadb的进程占用了...

walk273
2013/05/25
0
0
为什么 redux 要返回一个新的 state 引发的血案(二)

Redux 的内幕(二) 一堆废话 index.js createStore.js 来个小彩蛋 未待完续 相关链接 Redux 的内幕(二) 一堆废话 继上一篇文章《为什么 redux 要返回一个新的 state 引发的血案》之后,过...

彭道宽
01/03
0
0
Mybatis 错误Should be: #{propName,attr1=val1,attr2

Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2; <update id="updateByPrimaryKeySelective" parameterType="com.wlyd.fmcgwms.persistence.beans.basic.W......

boonya
2016/04/22
50
0
64位进程和32位进程通信问题,接收端收不到 SendMessage发送的消息

最近在做一个项目的时候,采用了win32的SendMessage方法来发送数据,本来都没问题,后来增加了一个项目,必须采用的目标平台是x64的,没想到居然没办法通信了。 网上找了很久解决方案,整整尝...

sharestone
2018/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
29分钟前
0
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
1
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部