2013年给1个大学的小客户部署过一个小型的Asp.NET网站,非常小,用的sqlite数据库,今年人家说要换台服务器,要重新部署一下,好吧,虽然早就过了服务时间,但无奈谁叫人家是客户了,二话不说,上,源代码和以前的文件都有,部署还不是分分钟的事情,打开IIS挂上去就行了。谁知道,这个部署将近花了2天的时间。看看踩坑过程和解决方法。

本文原文地址:http://www.cnblogs.com/asxinyu/p/4380380.html

  回来一看,9个反对,我心痛啊,这些童鞋,你们觉得这篇文章哪里有问题?让我辛辛苦苦写篇文章,情何以堪。。。

1.居然拿XP系统做服务器

  第一个坑其实和我没关系,客户以前用的服务器是Windows Server 2003,对于小网站来说足够了。这次换了服务器,不知道哪根筋抽住了,直接安装了一个XP系统,我远程进去一看,当时看到XP,莫名的冲动,居然IIS都没有,好吧,赶紧叫他们换。虽然XP也能安装IIS,对这个客户来说,无所谓,但拿XP来,的确是让我震惊。

  客户重新安装了一个Windows Server 2003,然后我再去远程部署。。。。还是一样的有坑

2..NET4.0的项目出现找不到2.0版的“System.Web”

  IIS简单的设置后,启动,一直提示对象为Null,打开日志一看,一大堆的这个错误:

22:36:36.015 1 W - System.IO.FileNotFoundException: Could not load file or assembly 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 系统找不到指定的文件。
File name: 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.ReflectionOnlyLoad(String assemblyString)

  本来项目就是.NET 4.0的,以前的服务器也运行好好的,根本没改过,同样的代码,出现这个错误。找不到2.0版本的System.Web,我虽然不懂,但这也太诡异了,我是无法解释的。那就先 经过搜索引擎 看看啥情况,经过一番360和百毒,在这个页面找到点有用的信息:

http://www.cnblogs.com/yelaiju/p/3375168.html

然后按照文章的方法,下载补丁。。。可惜本来网速就不快,开远程,卡得要死,我就打开QQ想把文件传过去。。。狗日的腾讯,打开个QQ,弹出个页面,悲剧了,直接卡死。。好吧,啥都干不了了。。。

最后只能叫客户下载好,安装上去。。。但是问题依旧。。。后来群里有个朋友叫我在配置文件加上下面一段:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

加上去,重启了一下,经过一番折腾,好像好了一段时间,但是又报错,Sqlite数据库只读,这个问题还是比较简单,把数据库所在文件夹打开,给user用户权限就搞定了。

  但是还是报上面哪个System.Web的错误,。。。。好吧,已经很晚了,本来想安装一个.net 2.0的环境看看是否有效,但无奈网速太坑爹,远程都进不去。。。。我放弃了,第二天再说把,

3.一招见效,安装.NET 2.0

  早上起来,速度快了一点,果断下载一个.net 2.0的环境安装上去,企鹅还是同样的坑爹,打开几分钟后才反应过来,只能忍,忍,忍,终于传过去了,安装好,,然后重启了一下,就好了。

  搞不懂啥原因,其实早就想到安装一个2.0的环境,但一直以为很容易就能解决,再加上坑爹的网速和企鹅的弹窗,死了好几回。。。

  留个脚印把,搞不懂原理,请高手赐教。

【踩坑经历】一次Asp.NET小网站部署踩坑和解决经历的更多相关文章

  1. ASP.NET CORE网站部署到 windows server 的IIS 上去

    章基于我自己经验的一个总结,在windows服务器上部署asp.net core网站.环境是 windows server 2012数据中心版本 第一步先安装 IIS 服务器 接下来就是一路下一步,然 ...

  2. ASP.NET MVC4网站部署在阿里ECS云服务器(WIndows Server 2012+IIS8环境)

    首先交代一下服务器的环境配置 系统是WIndows Server2012(配置的时候选的是全能环境),服务器是IIS8 由于装了VS2012,所以系统也自动装上了.Net Framework4.5,M ...

  3. 阿里云 Windows Server 2012 r2 部署asp.net mvc网站 平坑之旅

    做了多年的Web开发工作,网站部署也不在话下,可每次部署却并不是十分顺利,将本次在阿里云服务器上部署asp.net mvc网站遇到的问题记录如下. 平台是阿里云ECS,操作系统是 Windows Se ...

  4. ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...

  5. 我的微信小程序入门踩坑之旅

    前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...

  6. 小程序——微信小程序初学踩过的坑

    微信小程序初学踩过的坑 一.前言     最近因为某些需要和个人兴趣打算开发一下微信小程序,经过在官方网站上的基本了解,我大体知道了微信小程序开发的大致过程,其实最本质的就是MVVM,借用了很多模式上 ...

  7. 【微信小程序】踩坑指南(持续更新)

    前言 说明: 基于mpvue框架:mpvue官方文档 语法同vue框架:vue官方文档 小程序中会有一些坑点,这里会就工作中遇到的坑一一列举出来 无说明时请直接看代码注释 v-show无法使用在小程序 ...

  8. 小程序 & taro 踩坑指南

    小程序 & taro 踩坑指南 微信开发者工具, 不支持 react bug https://github.com/NervJS/taro/issues/5042 solution just ...

  9. ASP.NET Web 应用 Docker踩坑历程——续

    ASP.NET Web 应用 Docker踩坑历程发表后,也开始使用Docker了,然而发布的过程比较痛苦,经常发生下图的事情: 据说是nuget包还原时发生错误 百度了半天也找不到解决的方法,而发生 ...

随机推荐

  1. Linux Ubuntu12.04下安装OpenCv2.4.10

    参考 http://blog.sina.com.cn/s/blog_53b0956801010lfu.html 捣鼓了一个晚上了,OpenCv还没装好,本来以为看个类似的比如Ubuntu安装OpenC ...

  2. 转:linux coredump调试

    1 )如何生成 coredump 文件 ? 登陆 LINUX 服务器,任意位置键入 echo "ulimit -c 1024" >> /etc/profile 退出 L ...

  3. 在ubuntu上配置nginx+php+mysql+phpmyadmin

    1.先更新ubuntu系统 更新命令 sudo apt-get update sudo apt-get upgrade 2 添加ubuntu nginx更新源镜像 cd /etc/apt/ sudo ...

  4. CardView

    CardView继承至FrameLayout类,可以在一个卡片布局中一致性的显示内容,卡片可以包含圆角和阴影.CardView是一个Layout,可以布局其他View. CardView常用属性: c ...

  5. Ubuntu全新安装firefox最新版本

    Ubuntu默认安装firefox,但是自带的软件仓库是不会随firefox更新的,我在使用中老是提示flash插件需要激活,提示中可选的解决方式有三种 1.更新flash插件,但是跳转到adobe的 ...

  6. asp.net WebApi and protobuff

    protobuff 是谷歌开发的,在性能上要比Json xml好很多,对性能要求比较高的时候这个是一个不错的选择,但是这个目前只是一个序列化反序列化的东西,以前原生的只有几种语言的现在在github ...

  7. centos 6.5 X64 安装 mongodb 2.6.1 (笔记 实测)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 *** Centos编译安装mongodb 2.6 系统最好是64位的,才 ...

  8. 人人都是 DBA(I)SQL Server 体系结构

    在了解 SQL Server 数据库时,可以先从数据库的体系结构来观察.SQL Server 的体系结构中包含 4 个主要组成部分: 协议层(Protocols) 关系引擎(Relational En ...

  9. 《你必须知道的.NET》读书笔记:从Hello World认识IL

    通用的语言基础是.NET运行的基础,当我们对程序运行的结果有异议的时候,如何透过本质看表面,需要我们从底层来入手探索,这时候,IL便是我们必须知道的基础. 一.IL基础概念 1.1 什么是IL? IL ...

  10. Homework 3

    1. 是否需要有代码规范? 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. (反对) 我是个艺术家,手艺人,我有自己的规范和原则.  (反对) 规范不能强求一律, ...