ASP.NET教程之VS2005(c#)项目调试成绩办理计划集锦
Java欺骗了我们那么多年,如今的多核时代,我认为它气数已尽!办理|成绩|项目 1.检测到有潜伏伤害的Request.Form值缘故原由:
(1)在提交数据的页面或webconfig中没有对validateRequest的属性举行准确的设置
(2)HTML内里写了两个引发
办理:
计划一:在.aspx文件头中到场这句:<%@PagevalidateRequest="false"%>
计划二:修正web.config文件:
<P><configuration>
<system.web>
<pagesvalidateRequest="false"/>
</system.web>
</configuration>
由于validateRequest默许值为true。只需设为false便可。
2.“在没有任何数据时举行有效的读取实验”办理举措
缘故原由:
所前往的sqldatareader有数据纪录,但没有作纪录判别力处置。前往的是空值
加上判别便可:if(reader.read()){TextName.Text=
reader["FieldName"].ToString();}
3.数据为空。不克不及对空值挪用此办法或属性。
缘故原由:
若工具是null,那末挪用工具的办法比方ToString()一定堕落通常为数据库字段的值为空
在grideview等数据控件常呈现
办理:因而倡议作NULL处置
4.浏览器封闭时FieldCount的实验有效
缘故原由:
利用了SqlDataReader来绑定命据后,将connection工具作了Close()处置
相似
<P>publicSqlDataReaderGetSomething()
{
conn.open();
SqlDataReaderreader=
sqlcmd.ExcecutReader(CommandBehavior.CloseConnection));
conn.close();//occurerrorhere
returnreader;
}
在绑定的时分挪用了这个办法来指定命据源。假如利用这个办法则必要在挪用函数中封闭Re
ader如许conn就能够主动封闭。
假如是利用的是SqlDataAdapter和DataSet那末请往失落显式封闭conn的挪用。大概在finally
中挪用之。
5.未能映照路径
缘故原由:多是在webconfig中的路径设置不准确而至
<P><addkey="FCKeditor:BasePath"value="~/admin/fckeditor/"/>
<addkey="FCKeditor:UserFilesPath"value="/UserFiles/"/>
6.Unreachablecodedetected
缘故原由:
通常为在非常处置理或前往值时利用了throw或return,多是其地位放在后面,形成前面的代码实行到了。
办理:
把相干的非常抛出处置的语句(throw)或return的语句放到代办署理实行的最初一行。
7.索引超越局限。必需为非负值并小于汇合巨细
缘故原由:
(1).没有设置DATAKEYFIELD设为数据库中绝对应的独一字段(通常为主键)
(2).DataGrid1.Columns>e.Item.Cells
办理:
(1).设置datakeyfield
(2).到场判别语句datagrid1.item.count(datagrid能够是别的相相似的服务器控件)
8.数据为空。不克不及对空值挪用此办法或属性
9.数据源不撑持服务器真个数据分页
办理办法:
不要利用DataReader,改成利用DataSet:或利用自界说分页情势,不接纳vs.net供应的分页功效
<P> OleDbDataAdapterda=newOleDbDataAdapter(sql,connection);
DataSetds2=newDataSet();
da.Fill(ds2,"News");
GridView1.DataSource=ds2;
GridView1.DataBind();
10.工具名*****有效
缘故原由:以后利用的数据库中没有*****这张表
办理:检察是不是程序中是不是写错了所挪用的表的称号或看一下SQL数据库中是不是存在你所挪用的表
11.在创建与服务器的毗连时堕落。在毗连到SQLServer2005时,在默许的设置下SQL
Server不同意举行远程毗连大概会招致此失利。(provider:定名管道供应程序,
error:40-没法翻开到SQLServer的毗连)
solution:主机上必要用流动的IP地点或服务器地点
12.SqlDateTime溢出。必需介于1/1/175312:00:00AM和12/31/999911:59:59PM
之间。
呈现这类成绩``多数是由于你更新数据库时``datetime字段值为空``默许拔出0001年01月01
日``形成datetime范例溢出
13.呈现-------暗示“属性”,此处应为“办法”
缘故原由:
1.VB与c#的办法,属性的格局有所纷歧样招致。
2.多是在design中绑定命据的语法呈现毛病办理:1.记着属性用[]办法用()
3.记着绑定命据的准确语法(有以下几种体例::<%Container.DataItem(“字段名”)%><%
#Eval(“字段名”)%><%Bind(“字段名”)%>等)
14.未能从程序集“DAL,Version=1.0.0.0,Culture=neutral,
PublicKeyToken=null”中加载范例“DAL.SqlHelper”。
缘故原由:修正了其他层后未能从头编译成dll
办理:编译一下(Rebuild)
15.为历程或函数指定的参数太多
solution:挪用存储历程与界说的存储历程所用的参数数目或所实行的SQL语句中所传进的参
数个数纷歧致(这是个SQL的毛病)
办理计划:细心反省在存储过程当中所设定的参数变量,与实践输出的参数值是不是逐一对应
16.没法启动调试,绑定句柄有效
缘故原由:体系的TerminalServices没有开启
17.Unabletodebuggingonthewebserver.Debugfailedbecauseintegratedwindowsauthenticationisnotenable
办理办法:
翻开vs2005->工具(Tools)->选项(Option)->调试(debugging)->编纂并持续(EditandContinue)->全体打勾
18.Automation操纵中文件名或类名未找到:RegExp
办理办法:regsvr32vbscript.dll
19.System.NullReferenceException:未将工具援用设置到工具的实例。
缘故原由:
(1)所设置的变量为空值或没有取到值,一样平常呈现在传送参数的时分呈现这个成绩,也会在利用datagrid或gridview或datalist等数据控件时呈现.
(2)控件称号与codebehind内里的没有对应
(3)未用new初始化工具
(4)在程序中所援用的控件不存在
办理办法:
(1)利用try..catch...finally捕获毛病,或间接用response.write()输入所取的变量值
(2)检察代码中是不是存在未初始化的变量
20.毛病1718。文件被数字署名战略回绝(安装vs2005sp1时)
办理办法:
(1).单击“入手下手”,单击“运转”,键进controladmintools,然后单击“断定”。
(2).双击“当地平安战略”。
(3).单击“软件限定战略”。(注重:假如未列出软件限定,请右击“软件限定战略”,然后单击“新建战略”。)
(4).在“工具范例”下,双击“强迫”。
(5).单击“除当地办理员之外的一切用户”,然后单击“断定”。
(6).从头启动盘算机。
微软申明:
http://support.microsoft.com/kb/925336
21.vs2005不克不及从源文件形式切换到视图形式
办理办法:dos下运转下devenv/resetskippkgs(win+rcmd)
22.ValidationofviewstateMACfailed
办理举措:页面的顶部page加EnableViewState="False"EnableViewStateMac="False"来办理这个成绩
23.Automationservercantcreateobject"(Automation服务器不克不及创立对)
办理举措:运转:Regsvr32scrrun.dll便可。
24.包加载失利
未能准确加载包"VisualWebDeveloperTridentDesignerPackage"(GUID=
{30AE7E28-6C02-496D-8E43-85F7A90AEFF1}。
办理办法:
1、设置体系变量VsLogActivity=1
2、在%APPDATA%MicrosoftVisualStudio8.0文件夹下创立文件ActivityLog.xml
Error
MicrosoftVisualStudio
LoadLibraryfailedforpackage
{30AE7E2B-6C02-496D-8E43-85F7A90AEFF1}
-------------------------------------------------
8007007e
c:ProgramFilesMicrosoftVisualStudio8Common7Packages ridsn.dll
3、从WINNTMicroSoft.NETFrameworkv2.0.xxx复制文件gdiplus.dll到ProgramFilesVisualStudio8Common7Packages文件夹下
4、在命令行下运转命令:devenv/resetskippkgs
25.Errorspawningcmd.exe.
办理计划:把cmd.exe拷贝到VS安装目次下的VC/BIN目次里,能够办理成绩。
26.实验读取或写进受回护的内存
办理:硬件有成绩,一样平常内存有成绩
27.没法在证书存储区中找到清单署名证书
办理办法:用记事本翻开项目标.csproj文件,删除相似
28.该项目中不存在方针“ResolveKeySource”。
缘故原由:这个成绩很稀有,查询外洋相干材料后,大抵说是因为部署的不是一个尺度的solution,必要在VS自带的命令提醒中运转上面这个器材恢复
办理办法:
(1).将以下代码存为XML文件,定名为TestBuild.xml
<P><ProjectDefaultTargets="Build"xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TargetConnectionString>DataSource=.sql2005%3BUserID=SqlUser%3BPooling=False%3BPassword=X</TargetConnectionString>
</PropertyGroup>
<ItemGroup>
<DatabaseProjectInclude="Database1Database1.dbproj"/>
<DatabaseProjectInclude="Database2Database2.dbproj"/>
</ItemGroup>
<TargetName="BuildAllDatabaseProjects">
<MSBuild
Properties="TargetConnectionString=$(TargetConnectionString)"
Projects="@(DatabaseProject)"
Targets="Build;Deploy">
</MSBuild>
</Target>
(2)在命令提醒中运转:msbuild/t:BuildAllDatabaseProjectsTestBuild.xml
29.不克不及将值NULL拔出列**
缘故原由:这是数据库表计划的毛病,所触及的表的字段中设置了不克不及为空的属性,可是传进的值为null,以是报错
办理办法:检察是不是所传进的值是不是为Null,或修正数据库中表的所对应的列的属性
30.未能加载范例"定名空间.类"...
缘故原由:
(1)项目修正后没有举行编译
(2)项目华夏有的定名空间大概被修正了
(3)项目中所必要的ascx或其他页面不存在,或不包括在项目中
办理办法:
(1)在修正完成以后,请从头天生或编译全部项目或办理计划
(2)手工修正所修改的定名空间,注重称号的巨细写,再从头编译
(3)将相干的文件包括在项目中
31.不克不及会见只读文件“****.***"
办理计划:
给假造目次所对应的文件加上“Everyone/写进”权限便可
32.哀求因HTTP形态401失利:AccessDenied
办理办法:在iis信息服务器上把匿名会见和同意iis把持暗码给勾上
刚刚打开这篇专题,猛然见到HAL9000发表的《对于大型公司项目平台选择j2ee的几层认识》系列,深受启发。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
页:
[1]