当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net服务器上几种常见异常的解决方案.

ASP.NET
.NET框架类库中的定时器类的使用
net得到本地电脑基本信息的简单方法
如何通过ASP.NET页面重启服务器
.net开发工具LINQ框架设计指南
.net ajax 与Ext2框架在.net程序中的应用
.Net上传图片按比例自动缩小或放大
.NET的死锁调试工具:ACorns.Debugging
ADO在vb.net中的使用(与datagrid结合)
Visual C++中实现双缓冲的基本原理
.net App中集成COM组件的一些简单技巧
vb.net通过app.config来改变编译路径
实例了解Asp.Net的继承和多态性
asp.net里导出excel表方法汇总
ASP.NET上传大于4M的文件的相关设置
.Net开发漫谈:关于命名空间和目录划分
.Net(C#)开发漫谈:关于变量的命名和属性
.Net新手学堂:Lambda表达式的一般应用
故障解析:.NET开发正则表达式中BUG一例
一步一步安装VB.Net(图片较多,请稍等)
关于用VB做更漂亮的窗体的思考

ASP.NET 中的 asp.net服务器上几种常见异常的解决方案.


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 217 ::
收藏到网摘: n/a

由于以前就业时算是公司里对服务器上各种硬件和配置原理较为了解. 一直负责公司服务器日常管理.也算是半路出家. 当然日常工作中前前后后也遇到不少大大小小的问题(硬件/服务器日常配置 数据中心合并方案等等). 有1些常见的异常. 总结一些基本快速的处理方法. 如下

(1)配置Asp.net站点ISS报出:服务器应用程序不可用.具体异常信息如下:

服务器应用程序不可用
您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。
管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。

我检查ISS上其他的配置.发现全部都是Asp编写的网站.属性中查看运行的环境竟是Asp.net Framework 1.1版本. 我修改成了.NET FrameWork2.0版本.结果出现这个错误提示.

(1)一般情况下.NET2.0和.NET1.1在程序池公用时就会出现"服务器应用程序不可用"这个异常.其实是进程池调用冲突的问题,如果访问的两个应用程序,分别是2.0 和1.1, 而且他们共用一个进程池,
IIS 无法同时将其解析2种版本,就会出现如上的错误.

解决问题办法:修改其中之一的进程池, 如把 2.0的应用程序的进程池改为 ASP.NET 2.0 . 即可

(2)方法二:重新注册IIS, NET\Framework\v2.0.50727里的aspnet_regiis.exe 运行它,重新注册一下.net aspnet_regiis.exe -u 先卸载 aspnet_regiis.exe -i 重新安装 有时候重启一下服务器就好了.

有时按照上面的两种方法配置.还会报出同样的异常.接着查看一下系统事件日志.来看看报出异常具体信息.这是在11-10日10点这个时段服务器上系统事件日志:

其中详细信息:

1:由于无法创建应用程序域,因此未能执行请求。错误: 0x80070005 拒绝访问。
2:未能初始化 AppDomain:/LM/W3SVC/1635210705/Root Exception: System.IO.FileLoadException
Message: 未能加载文件或程序集“System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。拒绝访问

谷歌一下找到一个合理的解决方案:

1:安装2.0之后,在IIS的虚拟目录的属性设置中会多出一个ASP.NET标签,在那里边把运行时调整为2.0,默认使用的是1.1的运行时。

2:这个是权限问题,首先检查应用程序池的属性,看看它是以什么用户身份运行的,一般是NETWORK SERVICE 然后确保这个用户对.NET Framework 2.0的目录有访问权限,事实上应该是有的。目录是systemroot:\Windows\Microsoft.NET\Frameworks \2.0.xxxx .如果以上两条都对,很不幸,你遇到了一个很奇怪的问题,我上次是把应用程序池的用户身份改成本地系统来运行的。按照第二种解决方案配置: 把运行池的访问用户设置为"本地系统", 然后运行程序, 错误没在出现, 成功解决,

当然现在站点有的设计Silverlight集成开发用的.NET环境是3.5版本的.安装后.net FrameWork3.5SP1后.在属性中Asp.net一栏中依然只是1.1和2.0. 有人就问为什么没有3.5?

从官方治疗找到:3.5是基于2.0的 所以IIS里边只有2.0. 3.5相对2.0只是增加了一些类型库.他们的JIT是相同的所以IIS只需要2.0就可以了 没有必要存在3.5.3.5的运行的还是基于2.0上边

(2)在SQL脚本时用T-sql插入汉字时出现乱码类似(????)等.如图.

下午处理几个版本更新。需要更新服务器上SQl2005的数据库.我通过Visor生成数据库脚本执行时遇到汉字.就出现类似(???)乱码. 在网上一直没有找好成型解决方案.于是乎就对比着SQL2000版本原版数据库属性.发现在排序规则上有一定出入.SQL2005上默认的数据库排序规则是:SQL_Latin1_General_CP1_CI_AS,如图.

这就是导致乱码原因所在.将排序规则由默认的SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS. 或在利用T_SQL语句在创建时执行:ALTER DATABASE BasicDB COLLATE Chinese_PRC_90_CI_AS

注意:在修改时该数据库对应的属性时必须关闭与该数据库所有的对外连接.否则导致修改不成功.然后通过重启SQL服务生效.