asp.net服务器上几种常见异常的解决方案._实用技巧

如下

(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服务生效.

时间: 2024-11-02 06:38:58

asp.net服务器上几种常见异常的解决方案._实用技巧的相关文章

asp.net上传文件到数据库的解决方案_实用技巧

现在,我们来看存放文件的数据库表结构,这里,我们给出建立表的标准SQL语句: CREATE TABLE tblBooksUpload ( DocID int NOT NULL IDENTITY Primary Key , DocTitle varchar (200) , Doc image, DocType varchar (50) , Entrydate datetime Default GetDate() ) 以上的语句中,我们看到数据表tblBooksUpload包含五个字段: ·字段Do

ASP.NET4 GridView的四种排序样式详解_实用技巧

与ASP.NET 的其他Web控件一能够,Gridview控件拥有很多不同的CSS样式属性设置,包括象CssClass,Font字体,ForeColor,BackColor,BackColor, Width, Height等等.Gridview还包括了一些应用在表格的行上的样式属性,比如RowStyle, AlternatingRowStyle, HeaderStyle,和PagerStyle,它们都提供了象CssClass和Font这些基本的属性设置.  在 ASP.NET 4.0中的Grid

ASP.NET解决上传大文件问题的方法_实用技巧

上传文件的控件为:FileUpload Asp.Net对上传文件大小有限制.默认情况下用户只能上传4MB大小的文件,这会给用户带来不便.所以如果要上传40MB大小的文件.只能修改配置文件 关键代码如下 复制代码 代码如下:  protected void btnSend_Click(object sender, EventArgs e)     {         try         {             //上传文件的思路:             //获取上传文件的名称,此时为一个

asp.net图片上传生成缩略图的注意事项_实用技巧

bitmap.Save(imgPath,ImageFormat.Jpeg);   //这是保存缩略图的一段代码,其中的ImageFormat.Jpeg一定不能省略,即使你保存的文件本来就是jpg格式的,也不能去掉.因为如果去掉的话,生成的缩略图比原始图片还要大! //另外,imgPath必须首先创建,否则会产生GDI+的一般性错误. path=System.Web.HttpContext.Current.Server.MapPath(path); 使用if(!System.IO.Director

ASP.Net中防止刷新自动触发事件的解决方案_实用技巧

使用asp.net,在刷新页面的时候会自动触发服务器端的事件.举个简单的例子,如:一个注册页面,我们填写完注册信息之后,如果按F5刷新之后,会自动触发到Button事件上,这样就造成了又注册了一次的麻烦. 我先前的解决方案:用关键字查询,如有相同,则提示已有此用户. 但是这种方案不能在没有表识的情况下使用,他会重新提交.鉴于此,我寻找了一种新的解决方案,很庆幸,在朋友的提点下,迸发了这样的解决方案,肯定有更好的解决方案,不吝赐教. 解决思路:刷新时,捕捉KeyPress,让他触发其他无用的事件.

VS2015在升级到Update2之后运行Cordova项目异常的解决方案_实用技巧

VS2015在升级到Update2之后,有可能出现如下异常,在运行Cordova项目时提示: 查看输出面板会有乱码错误信息: 出现此问题的原因是在于npm程序损坏了.vs调用的npm程序并不是在node安装目录下的npm,而是在: C:\Users\用户名\AppData\Roaming\Microsoft\VisualStudio\MDA\vs-npm\版本号\ 升级完VS之后会发现npm.cmd已经无法启动运行了.所以Cordova项目在运行时,无法使用npm来解析包导致程序无法运行. 解决

ASP.NET GridView中加入RadioButton不能单选的解决方案_实用技巧

 今天开发碰见一个问题,就是当GridView中加入一个包含RadioButton的模板列,结果一运行.....天啊,单选按钮可以多选了! 囧啊!为了演示一下我今天的错误我还是模拟一个功能场景吧,我要实现的功能是显示一个包含单选按钮的学生信息列表,选择一行后将详细信息显示出来~! 1.问题展现 ①首先准备一个GridView用来展示学生的基本信息与最重要的单选按钮,代码如下: <asp:GridView ID="GridView1" runat="server"

asp.net开发中怎样去突破文件依赖缓存_实用技巧

在Web项目中可以使用Session,Application等来缓存数据,也可以使用Cache来缓存. 今天我们特别关注的是Cache缓存.Cache位于命名空间System.Web.Caching命名空间下,看到这里我们想到的是它在Web项目中使用. 说明:Cache 类不能在 ASP.NET 应用程序外使用.它是为在 ASP.NET 中用于为 Web 应用程序提供缓存而设计和测试的.在其他类型的应用程序(如控制台应用程序或 Windows 窗体应用程序)中,ASP.NET 缓存可能无法正常工

asp.net下计算数字1至10的总和_实用技巧

复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { Response.Write(string.Format("数字1~10总和等于{0}.", Sum(1, 10).ToString())); } private int Sum(int min, int max) { int s = 0; for (int i = min; i <= max; i++) { s += i; } return s;