C# HtmlDecod解密报错,为什么啊?在什么情况下会报“未将对象引用设置到对象的实例” 如下方法:

作者&投稿:左丘详 (若有异议请与网页底部的电邮联系)
未将对象引用设置到对象的实例都可能由哪些原因引起的~

一、网络上的一般说法

1、ViewState对象为Null。

2、DateSet空。

3、sql语句或Datebase的原因导致DataReader空。

4、声明字符串变量时未赋空值就应用变量。

5、未用new初始化对象。

6、Session对象为空。

7、对控件赋文本值时,值不存在。

8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。

9、使用FindControl时,控件不存在却没有做预处理。

10、重复定义造成未将对象引用设置到对象的实例错误.

二、

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

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

(3)未用new初始化对象

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

解决方法:

(1)使用try..catch...finally捕捉错误,或直接用response.write()输出所取的变量值

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

三、

SqlConnection.Open未将对象引用设置到对象的实例

在使用VS2003开发ASP.NET程序时候有时候操作SqlConnection对象的Open()方法时候会出现

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

说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息:System.NullReferenceException:未将对象引用设置到对象的实例。

源错误:

。。。。

conn.Open();

......

跟踪调试也肯定可以确定对conn进行new操作但是程序经常在这个地方报错,但是有时候重启服务器或者重启IIS有能正常使用了。怎么调试也找不到问题那么这个时候可能是你本机上安装的.NETFRAMEEWORK框架有问题,可能没有没有安装SP1.1补丁

需要打NET转载自百分网http://www.oh100.com,请保留此标记FRAMEEWORK1.1SP1的补丁,到微软官方网站下载安装后就好了。

四、

一般出现NullReferenceException异常的我个人总结有以下情况:

1、对象所在的命名空间没有引用

2、对象没有实例化

3、出现异常,实例化失败对象为null

五、

IIS扛不住的时候,也会出现上面的错误。

当应用程序的用户访问量超过它能承受的范围之后,就会出错。

改善你的程序,使用缓存,尽量减少与数据库交互的次数。

六、

我碰到的问题是,无意重置了DataSet引用,后出现这个问题,请大家好好查查自己的代码,是不是在其他地方重新引用了,在我的程序中DataSet被设置成全局对象。

七、

当你发现所有的方法不行时,打上.netframework的补丁

八、

我出现这个错误,仅仅因为网站里面DAL的dll文件失效,业务层实例化不了IDAL里面的对象

但也浪费了一下午的时间在调代码上

九、

为每个可疑的地方添加监视,起初以为是sql语句写错了,查了几遍,换用sql语句还是报同样的错误。根据google出来的结果,提到对象重定义会引起这样的结果。根据这一提示,替换掉页面级全局对象,总算搞定了。

classDBOper{

/*构造函数没有函数体

**c#写的一系列对数据库操作方法

**}最初为了省事,尽量少声明对象,只在全局声明了一个privateDBOperdb=newDBOper(),在不同方法里面调用该对象的方法,以避免为其定义而造成内存浪费。后来代码重构,在编译的时候并未报错。但是当运行的时候,就出现"NullReferenceException:未将对象引用设置到对象的实例"。结果就因它而搞了几个小时。后来根据google的结果,将不同方法中使用到的DBOper对象一一重定义为局部变量(一个方法里面只定义一个DBOper对象,多次调用其方法均正常),去掉全局的private变量。再运行的时候就正常了。

至于为什么将自定义的对象提成为class为private在不同的方法里面使用后而出现这样的问题,现在还不是很清楚.........................

就是你代码某个地方的值是空的。因此会报错,,具体哪里有问题,就这么看,也不怎么看的出来,,你可以用断点调试,,自己一步步往下走,看到底是哪个环节出错了。

使用studio自己的报错功能 双击报错的条目 看看是哪里没有初始化 然后new一个就行了


宝应县13393875664: C# HtmlDecod解密报错,为什么啊?在什么情况下会报“未将对象引用设置到对象的实例” 如下方法: -
言审佳名: 使用studio自己的报错功能 双击报错的条目 看看是哪里没有初始化 然后new一个就行了

宝应县13393875664: C# DES加密解密问题 -
言审佳名: public class TripleDES_ { public static string EncodeByDES(string origin, byte[] key, byte[] iv) { byte[] input = UnicodeEncoding.UTF8.GetBytes(origin); byte[] md5Hash = new MD5CryptoServiceProvider().ComputeHash(input); byte[] totalBuf = new ...

宝应县13393875664: C#编写三种DES加解密桌面应用程序时出现“要解密的数据长度无效”的问题 -
言审佳名: 给的加密数据不是经过你代码处理出来的吧. 要进过加密处理的才能进行解密,不然会报错

宝应县13393875664: 遇到的 C# 文件解密出现 "CryptographicException:不正确的数据" -
言审佳名: 我看了一下代码,我也是个菜鸟,不知对不对.StreamWriter fsDecrypted = new StreamWriter(sOutputFilename); 这里面的sOutputFilename 肯定是要一个完整的路径.而你下面这个调用方法代码中的第二个参数(@"111.jpg")只是一个文件名而已,并不是一个完整的路径,是不是这个地方错了. EncryptKit.DecryptFile(a, @"111.jpg", sSecretKey); 提示说明:你可用开发工具去调试一下,很快就可以找到问题了吗?

宝应县13393875664: 如何用C#实现DES加密解密 -
言审佳名: Solaris下的系统,有一个用C做的加密工具,调用Sunwcry的des(1)对文件进行加密,然后在java中对文件进行解密.java中用的是标准的DES/CBC/NoPadding算法,可是解密后发现开头有8byte的数据出错了,

宝应县13393875664: C#开发的C/S程序加密解密问题 -
言审佳名: 密码一般可用md5加密的方式.也就是把明文用md5加密后,变成32位的hash值存到数据库的字段里.这个值基本无法解密,你要判断用户输入的密码对不对,就把用户输入的密码再md5一次,然后和数据库里的字段比对,如果一致,那么密码正确.md5的加密方法.net类库里有提供,找找看,不需要找别的第三方函数.如果不喜欢md5,或者有解密的需求,那么可以采用DES加密的方法,提供一个密钥,把明文加密成密文,用密钥也可以把密文还原为明文.这个.net里似乎没提供,你需要的话,我可以发给你.

宝应县13393875664: C#使用RSA加密方式 对XML解密问题 -
言审佳名: 这是因为,你是从你计算机上的密钥容器中读取密钥:cspparm.KeyContainerName = "XML_ENC_RSA_KEY";而别人计算机上根本不存在该密钥,自然无法解密.

宝应县13393875664: C#用DES加密数据后,别人知道了加密值跟密钥,是否可以自己通过DES解密方法解密? -
言审佳名: 必然啊,DES是对称加密,只要知道了密钥,显然可以解开密文啊.

宝应县13393875664: C#DES加密的字符串C解密
言审佳名: using System; using System.Security; using System.Security.Cryptography; using System.IO; using System.Text; using System.Threading; namespace 网厅单点登录 { /// <summary> /// DES3 的摘要说明. /// </summary> public class DES3 { private ...

宝应县13393875664: DES加密解密问题,java 和 C# -
言审佳名: 按道理说,直接用C# 的DLL加密就该是一样的.如果得不到一样的结果,说明别人加密的还是还带了其他的信息进去.比如密码加上了用户名后再加密,很多系统都这么设计加密.希望给你一个别的考虑思路.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网