.NET 源码常见问题及解答

100 篇文章 0 订阅
26 篇文章 0 订阅
一、程序运行时出现的数据库连接错误

4.jpg(15.84 K)
6/9/2013 3:21:14 PM



A 基本上在 web.config 中修改一下连接数据库字符串中的服务器名就可以了,不会修改的可以参考这个帖子 http://bbs.51aspx.com/showtopic-44356.html

二、未将对象引用到实例
A
第一种:重复定义造成未将对象引用设置到对象的实例错误一般在C#中造成“未将对象引用设置到对象的实例”错误都是控件名称与codebehind里面的没有对应。
第二种:空对象引用导致错误    
1:控件不存在。(可加入判断是否为null来解决
)
2:执行权限不够。加ASPNET和EVETRYONE所有权限。


(1)、ViewState 对象为null。
(2)、DateSet 空。
(3)、sql语句或Datebase的原因导致DataReader空。
(4)、声明字符串变量时未赋空值就应用变量。
(5)、未用new初始化对象。
(6)、Session对象为空。


三、说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。分析器错误信息: 未能加载文件或程序集“System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
A
基本上该类问题是缺少组件:System.Web.Extensions.dll

表现:
1、"System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
2、后台系统即使添加引用后,不管此引用是系统还是用户,他们的属性和方法都不能识别;
解决方案一:

1、如果你的程序运行在你能控制的服务器上,那么安装asp.net ajax就行了,这是System.Web.Extensionsdll做为GAC部署;(一般安装ajax就能解决)
2、如果你的程序运行在虚拟主机上(无权安装程序),那么需要把System.Web.Extensions.dllSystem.Web.Extensions.Design.dll
(通常在C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025目录下)2dll复制到你的web程序的bin目录下就行了,这是应用程序级别的部署。
同时注意要检查web.config中的代码:
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
<controls>
<add tagPrefix="atlas" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>


解决方案二:

1.打开web.config,找到以下相关结点:
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
     <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"></add>
     <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
     <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
2.将这些结果注释掉或删除,再重新编译就可以了.
这是因为VS2005编译的AJAX1.0,VS2008能同时编译AJAX1.0和其他版本的.所以会出现冲突.


解决方案三:
PublicKeyToken=31bf3856ad364e35”
或它的某一个依赖项。系统找不到指定的文件
asp.net Ajax安装上,然后将X:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 Ajax Extensions\v1.0.61025
目录下的System.Web.Extensions.Design.dll文件加到项目bin目录下,文件复制到网站bin目录下后再次运行,
安装了asp.net Ajax后会有三个dll文件
System.Web.Extensions.Design.dll
AjaxExtensionsToolbox.dll
System.Web.Extensions.dll
一般应该将这三个文件都添加到项目的bin目录下,要保险的话,全部复制进去吧



四、Web.config的黄页错误

5.jpg(47.88 K)
6/9/2013 3:21:14 PM


这样的问题怎么解决?
A: 造成这种情况的原因分析 :
我们把虚拟主机的跟目录架设为 wwwroot( 大多数都是这个 ), 在这个目录里你已经上传了一个 asp.net 的程序 , 这是一个虚拟目录 ( 你可以不必了解这是什么东西 , 但是文件夹的父子关系你要弄明白 ),asp.net 的站点需要放在一个虚拟目录里才可以被访问浏览 .
你把系统放在了 wwwroot 下的一个新建的文件夹里 , 但是这个文件夹不是一个虚拟目录 , 所以造成你使用域名 + 文件夹名访问出错 , 错误如上图所示 .
解决方法 两种 )
①需要你和虚拟主机的管理员沟通 , 和服务器管理员联系 , 让他把你放系统的文件夹设置成虚拟目录 .
②首先假设网站管理系统被你放在了 wwwroot/JFCMS4.0 目录下 (wwwroot 为你的虚拟主机跟目录 ),
你必须把网站管理系统的 bin 文件移到根目录下才可以 .


五、该页无法显示,您试图从目录中执行 CGIISAPI 或其他可执行程序,但该目录不允许执行程序。请尝试以下操作:如果您认为该目录应该允许执行访问权限,请与网站管理员联系。HTTP 错误 403.1 - 禁止访问:执行访问被拒绝。Internet 信息服务 (IIS)
A:
解决方法
1.打开IIS设置.
2.在建立虚拟目录或者网站时注意以下设置:

6.jpg(25.83 K)
6/9/2013 3:21:14 PM

注意要在这两个前面打上勾才行 .


六、网站运行不了,总是出现server unavailoble问题?
A:
这种问题大多数都是由于IIS的问题引起的.
.NET 安装的顺序应该是先装IIS,再装VS.NET,如果次序反了,或者IIS重装了,就需要使用aspnet_regiis.exe -i来重新安装IIS Mapping(主要用于aspx, asmx等文件的Extention的匹配)。在C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705目录下,运行下面的命令:aspnet_regiis.exe -i

七、我的一个IIS只能在本机浏览,请问是怎么回事?
A:
看看你的IISip分配,如果你分配为127.0.0.1,除了你自己,谁也看不到。  
  如果你分配为你在局域网的地址,只有局域网里的人能看见。  
  你必须分配为公网地址,公网的人才能看见,但是局域网里的人就看不到了。  
  如果你设置为“全部未分配”,所有人都能看见了。

八、本机可以访问,其他机器无法访问,怎么回事?
A:
可能是防火墙的问题!如果你是win2003,那就要修改目录文件夹的访问权限了!

九、ASP.NET向本机写入文件时,发生错误提示如下:异常详细信息: System.UnauthorizedAccessException:对路径“c:\windows\system32\inetsrv”的访问被拒绝.
A:
c:\windows\system32\inetsrv目录添加aspnet用户读写权限

十、为什么我用你们的系统,按你们的步骤配置了系统,在我点后台登陆页面的时候,出现了该页无权访问?
A:出现这样的问题,可能于的IIS设置有关系,首先检查一下你的配置中是否启动了 网站--->身份验证和访问控制中的编辑---->集成windows身份验证. 还有要注意windows2003系统默认是不启动父路径的. 这里要自己钩选上.

十一、配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 不允许有子节点。源错误:
84:    <compilers>
85:      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
86:        <providerOption name="CompilerVersion" value="v3.5"/>
87:        <providerOption name="WarnAsError" value="false"/>
88:      </compiler>
源文件: C:\Inetpub\wwwroot\ChinaLifeVoicePart\web.config    : 86
A
这个是告诉你程序是.net3.5版本!!解决办法!!升级电脑.net框架版本本机安装的。NET framework 版本与程序web.config 所指定的不相符。

十二、配置错误黄页


7.jpg(18.92 K)
6/9/2013 3:21:14 PM

A:用vs2005开发的asp.net应用程序需要使用.net framework 2.0,而在iis中的默认.net环境是1.1。这时将发生不可识别的节点的问题。将.net环境升级为2.0,开始->运行->cmd->C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
8.jpg(35.34 K)
6/9/2013 3:21:14 PM



在网站上右键--------属性----------asp.net--把asp.net版本选择为2.0.50727即可解决.
很明显的可以看了,是用了1.1的Framework
这是因为我的电脑装了VS.net 2003,之后又装了VS.net 2005,
IIS 现在默认的是1.1框架,而我这个是2005下开发的,要用2.0的框架,
只要在命令行下运行
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i

十三、Server Error in '/' Application
A:请确保您的目录已经创建IIS应用程序
另外确保ASP.NET辅助进程被赋予相应的权限


十四、IIS局域网不能访问
A:
HTTP服务默认实用80端口,只需要在防火墙(特别注意系统自带的防火墙)中启用HTTP服务(80端口)就可以;如果使用其它的防火墙,也需要进行类似的操作。
打开防火墙-->选择(高级)-->点击(本地连接旁边的[设置]按钮)-->"web 服务器(http)"前面勾选,确定。


十五、下载的IIS不知道怎么怎么安装?
A:
下载后解压缩放在你硬盘的任何位置。然后开始/设置 /控制面板/[添加/删除程序]/[添加/删除windows组建],然后在windows 组件向导中的internet
信息服务旁边的方框里打上勾,(注意:先别按下一步,点击详细信息看看里面的那些方框是不是都打上勾了,如果没有,要全选上,不然会出现问题4)。现在
你按下一步,要求你插入光盘,没有盘,点击浏览,选择IIS存放的路径,然后确定,这里也许你就出现问题3了,如果没出现你很幸运!


十六、Windows 2003系统装上IIS不可用?
A:
在你装IIS之前需要知道你的系统是什么哪个版本的,像有的windows2003的64位系统有的就需要系统盘里面的IIS装上才可以使用,所以如果有盘的朋友
最好还是使用光盘来装IIS,实在没有的办法下才去尝试网络上下载,毕竟网络上的东西都是人家整理精简过的难免有些不全!


十七、安装后internet信息服务器中没有默认网站
A:
如果看不到默认网站,那再打开[添加/删除windows组建]中的internet 信息服务,详细信息里面的勾全打上了,如果还是没有,那就只能重装了!


十八、安装后在地址栏中输入http://localhost出现Server Application Error 错误即500 错误
A:
出现这个问题也不知道什么原因,不知道你出现了没有,解决方法是:开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台
根目录”->“组件服务”->“计算机”-> “我的电脑”->“COM+应用程序”中,有一个“IIS Out-Of-Process Pooled”鼠标右键“属性”--“标识”--把“此
用户”调整为“交互式用户--目前已登录的用户”。然后“确定”,再鼠标右键“属性”--“启动”。这里还有个问题就是找不到“IIS Out-Of-Process Pooled
”,那里面根本没有!怎么办?别急!开始/运行,输入msdtc -resetlog,然后重装IIS了,现在你应该能看到IIS Out-Of-Process Pooled了,这样就OK了!


十九、无法访问页面,现象为显示出所访问目录的全部文件
A:
此现象为.Net功能并未加载到IIS。先确认ASP.NET Framework 2.0是否已经安装。若没有安装先安装ASP.NET Framework 2.0,然后安装IIS。在IIS中的ASP.NET选项卡中将“ASP.NET版本”选择相应的版本号。重启IIS服务即可。



二十、IIS无法解析aspx的开头部分
(现象:名称以无效字符开头。处理资源   'http://localhost/test/Default.aspx '   时出错。第   1   行,位置:   2   )
分析:.NET组件并未在IIS注册。
A:首先确定ASP.NET Framework是否安装,若没有安装,请参照1问题解决。若以按要求安装.NET Framework2.0,则按照一下步骤解决:(1)开始>运行,输入CMD。(2)输入:cd   C:\WINDOWS\Microsoft.NET\Framework\v2.0.507273.aspnet_regiis.exe   -i 进行重新注册。问题即可解决。


二十一、ASPNET登录SQL Server失败
分析:SQL Server中未有ASPNET账户权限
A:在SQL企业管理器或SQL Server Mangagement Studio中设置相应数据库安全规则,添加系统用户ASPNET,并赋予其db_owner的权限

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值