c#

位置:IT落伍者 >> c# >> 浏览文章

VS2005(c#)项目调试问题解决方案集锦


发布日期:2021年02月06日
 
VS2005(c#)项目调试问题解决方案集锦
检测到有潜在危险的 RequestForm 值

原因:

()在提交数据的页面或webconfig中没有对validateRequest的属性进行正确的设置

()HTML里面写了两个 引起

解决:

方案一aspx文件头中加入这句 <%@ Page validateRequest="false"  %>

方案二 修改nfig文件:

<configuration>

<systemweb>

<pages validateRequest=false />

</systemweb>

</configuration>

因为validateRequest默认值为true只要设为false即可

在没有任何数据时进行无效的读取尝试解决办法

原因

所返回的sqldatareader无数据记录但没有作记录判断力处理返回的是空值

加上判断即可 if (readerread()) { TextNameText =

reader[FieldName]ToString(); }

数据为空不能对空值调用此方法或属性

原因:

若对象是null那么调用对象的方法例如ToString()肯定出错一般是数据库字段的值为空

在grideview等数据控件常出现

解决:因此建议作NULL处理

阅读器关闭时 FieldCount 的尝试无效

原因:

使用了SqlDataReader来绑定数据后将connection对象作了Close()处理

类似

public SqlDataReader GetSomething()

{

connopen();

SqlDataReader reader =

sqlcmdExcecutReader(CommandBehaviorCloseConnection));

connclose();// occur error here

return reader;

}

在绑定的时候调用了这个方法来指定数据源如果使用这个方法则需要在调用函数中关闭Re

ader这样conn就可以自动关闭

如果是使用的是SqlDataAdapter和DataSet那么请去掉显式关闭conn的调用或者在finally

中调用之

未能映射路径

原因:可能是在webconfig中的路径配置不正确所致

<add key=FCKeditor:BasePath value=~/admin/fckeditor//>

<add key=FCKeditor:UserFilesPath value=/UserFiles/ />

Unreachable code detected

原因

一般是在异常处理理或返回值时使用了 throw 或return 可能是其位置放在前面造成后面的代码执行到了

解决

把相关的异常抛出处理的语句(throw)或return 的语句放到代理执行的最后一行

索引超出范围必须为非负值并小于集合大小

原因

()没有设置DATAKEYFIELD设为数据库中相对应的唯一字段(一般是主键)

()DataGridColumns > eItemCells

解决

()设置datakeyfield

()加入判断语句unt (datagrid可以是其它相类似的服务器控件)

数据为空不能对空值调用此方法或属性

数据源不支持服务器端的数据分页

解决方法:

不要使用DataReader改成使用DataSet或使用自定义分页形式不采用提供的分页功能

OleDbDataAdapterda=newOleDbDataAdapter(sqlconnection);

DataSetds=newDataSet();

daFill(dsNews);

GridViewDataSource=ds;

GridViewDataBind();

对象名***** 无效

原因:当前使用的数据库中没有*****这张表

解决: 查看是否程序中是否写错了所调用的表的名称或看一下SQL数据库中是否存在你所调用的表

在建立与服务器的连接时出错在连接到 SQL Server 在默认的设置下 SQL

Server 不允许进行远程连接可能会导致此失败 (provider: 命名管道提供程序

error: 无法打开到 SQL Server 的连接)

solution: 主机上需要用固定的IP地址或服务器地址

SqlDateTime 溢出必须介于 // :: AM 和 // :: PM

之间

出现这种问题``多半是因为你更新数据库时``datetime字段值为空``默认插入

日``造成datetime类型溢出

出现表示属性此处应为方法

原因:

VB与c#的方法属性的格式有所不一样导致

可能是在design中绑定数据的语法出现错误 解决: 记住属性用[] 方法用()

记住绑定数据的正确语法(有以下几种方式::<%Container.DataItem(“字段名”)%> <%

#Eval(“字段名”)%><%Bind(“字段名”)%>等)

未能从程序集DAL Version= Culture=neutral

PublicKeyToken=null中加载类型DALSqlHelper

原因:修改了其他层后未能重新编译成dll

解决:编译一下(Rebuild)

为过程或函数 指定的参数太多

solution:调用存储过程与定义的存储过程所用的参数数量或所执行的SQL语句中所传入的参

数个数不一致(这是个SQL的错误)

解决方案:仔细检查在存储过程中所设定的参数变量与实际输入的参数值是否一一对应

无法启动调试绑定句柄无效

原因:系统的Terminal Services没有开启

Unable to debugging on the web serverDebug failed because integrated windows authentication is not enable

解决方法:

打开vs>工具(Tools)>选项(Option)>调试(debugging)>编辑并继续(Edit and Continue)>全部打勾

Automation 操作中文件名或类名未找到: RegExp

解决方法:regsvr vbscriptdll

SystemNullReferenceException: 未将对象引用设置到对象的实例

原因:

()所设置的变量为空值或没有取到值一般出现在传递参数的时候出现这个问题也会在使用datagrid或gridview或datalist等数据控件时出现

()控件名称与codebehind里面的没有对应

()未用new初始化对象

()在程序中所引用的控件不存在

解决方法:

()使用trycatchfinally捕捉错误或直接用responsewrite()输出所取的变量值

()查看代码中是否存在未初始化的变量

错误 文件被数字签名策略拒绝(安装vssp时)

解决方法:

() 单击开始单击运行键入 control admintools然后单击确定

() 双击本地安全策略

() 单击软件限制策略(注意如果未列出软件限制请右击软件限制策略然后单击新建策略 )

()对象类型双击强制

() 单击除本地管理员以外的所有用户然后单击确定

() 重新启动计算机

微软说明

vs不能从源文件模式切换到视图模式

解决方法:dos下运行下 devenv /resetskippkgs (win+r cmd)

Validation of viewstate MAC failed

解决办法:页面的顶部page加 EnableViewState=False EnableViewStateMac = False 来解决这个问题

Automation server cant create object(Automation 服务器不能创建对)

解决办法:运行: Regsvr scrrundll 即可

包加载失败

未能正确加载包Visual Web Developer Trident Designer Package(GUID =

{AEECDEFAAEFF}

解决方法:

设置系统变量 VsLogActivity=

在%APPDATA%\Microsoft\VisualStudio\\文件夹下创建文件ActivityLogxml

Error

Microsoft Visual Studio

LoadLibrary failed for package [Visual Web Developer Trident Designer Package]

{AEEBCDEFAAEFF}

e

c:\Program Files\Microsoft Visual Studio \Common\Packages\tridsndll

从 WINNT\MicroSoftNET\Framework\vxxx 复制文件gdiplusdll 到 Program Files\Visual Studio \Common\Packages文件夹下

在命令行下运行命令 devenv /resetskippkgs

Error spawning cmdexe

解决方案:把cmdexe 拷贝到VS安装目录下的VC/BIN目录里可以解决问题

尝试读取或写入受保护的内存

解决:硬件有问题一般内存有问题

无法在证书存储区中找到清单签名证书

解决方法:用记事本打开项目的csproj文件删除类似

该项目中不存在目标ResolveKeySource

原因:这个问题很罕见查询国外相关资料后大致说是由于部署的不是一个标准的solution 需要在VS自带的命令提示中运行下面这个东西恢复

解决方法:

()将下列代码存为XML文件命名为TestBuildxml

<Project DefaultTargets=Build xmlns=>

<PropertyGroup>

<TargetConnectionString>Data Source=\sql%BUser ID=SqlUser%BPooling=False%BPassword=X</TargetConnectionString>

</PropertyGroup>

<ItemGroup>

<DatabaseProject Include=Database\Databasedbproj/>

<DatabaseProject Include=Database\Databasedbproj/>

</ItemGroup>

<Target Name=BuildAllDatabaseProjects>

<MSBuild

Properties=TargetConnectionString=$(TargetConnectionString)

Projects=@(DatabaseProject)

Targets=Build;Deploy>

</MSBuild>

</Target>

()在命令提示中运行:msbuild /t:BuildAllDatabaseProjects TestBuildxml

不能将值 NULL 插入列 **

原因:这是数据库表设计的错误所涉及的表的字段中设置了不能为空的属性但是传入的值为null所以报错

解决方法:查看是否所传入的值是否为Null或修改数据库中表的所对应的列的属性

未能加载类型命名空间

原因:

()项目修改后没有进行编译

()项目中原有的命名空间可能被修改了

()项目中所需要的ascx或其他页面不存在或不包含在项目中

解决方法:

()在修改完成之后请重新生成或编译整个项目或解决方案

()手工修改所改动的命名空间注意名称的大小写再重新编译

()将相关的文件包含在项目中

不能访问只读文件*******

解决方案:

给虚拟目录所对应的文件加上Everyone/写入权限即可

请求因 HTTP 状态 失败Access Denied

解决方法:在iis信息服务器上把匿名访问和允许iis控制密码给勾上

               

上一篇:.net Web用户控件使用技巧

下一篇:C#实现的多线程异步数据包接收器框架