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在不同的方法里面使用后而出现这样的问题,现在还不是很清楚.........................
我们都知道.NET Core是一个可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的通用开发框架。可用于为Windows、Linux和MacOS构建软件应用程序。与其他软件框架不同,.NET Core是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、 游戏 和物联网应用程序。与其他框架不同,.NET Core并不局限于单一的编程语言,它支持C#、VB.NET、F#、XAML和TypeScript。这些编程语言都是开源的,由独立的社区管理。
.NET Core提供了最先进、最成熟和最广泛的类库、公共API、多语言支持和工具。借助于Visual Studio 2019和Visual Studio Code 这些最先进和最现代的开发工具,使得.NET Core成为开发人员最高效的平台之一。
.NET Core的 历史
.NET Core是由Microsoft开发,目前在.NET Foundation(一个非营利的开源组织)下进行管理。.NET Core是用C#和C++编写的,并采用MIT协议作为开源协议。第一个版本的.NET Core 1.0是在2016年发布的,功能有限。NET Core 2.0于2017年8月14日发布。在这个版本中发布的两个核心框架是ASP.NET Core2.0和 Entity Framework Core 2.0。下一个稳定版本.NET Core 2.1和2.2于2018年5月和12月发布。.NET Core的当前版本为3.0.0,并且在2019年5月6日发布了第5个预览版。
下表总结了.NET Core的主要里程碑:
版本发布日期关键特征/产品.NET Core 1.06/27/2016VisualStudio 2015 Update 3支持的.NET Core的初始版本。.net Core 1.1.13/7/2017.NET Core Tools 1.0受VisualStudio 2017支持.NET Core 2.08/14/2017VisualStudio 2017 15.3,ASP.NETCore 2.0,实体框架2.0.NET Core 2.15/30/2018ASP.NET Core 2.1,EF Core 2.1.NET Core 2.212/4/2018ASP.NET Core 2.2,EF Core 2.2.NET Core 3.0预览33/6/2019通过VisualStudio2019支持ASP.NET Core 3.0、EF Core3.0、UWP、Windows窗体、WPF。
.NET Core的特点
.NET Core的主要特性包括开源、跨平台、现代、灵活、轻量级、快速、友好、可共享,以及为未来的软件开发而构建的。
.NET Core是免费和开源的
.NET Core平台是免费的、开源的。.NET Core的源代码托管在Github上。任何开发人员都可以参与到.NET Core的开发。有数千名参与.NET Core开发的活跃开发人员正在改进特性、添加新特性以及修复bug和问题。
.NET Core由一个名为.NET Foundation的独立的非营利组织管理。60,000多名开发人员和3,700多家公司正在为.NET生态系统做出贡献。
.NET Core是免费的,并且采用MIT和Apache协议作为开源协议。对商业十分友好。不像某Java
.NET Core是跨平台的
.NET Core支持并运行在Windows、MacOS和Linux *** 作系统上。.NET Core跨体系结构(包括x64、x86和ARM)是一致的。可以导入相同的程序集和库,并在多个平台上使用。这些程序集和库都可以使用如下的.NET语言进行构建,如:C#、VB.NET或F#。
.NET Core是可共享的
.NET Core使用一种用.NET Standard编写的一致API模型,这种模型对所有.NET应用程序都是通用的。相同的API或库可以与多种语言的多个平台一起使用。
.NET Core是现代的
与一些较旧的框架不同,.NET Core旨在解决当今的现代需求,包括移动友好、构建一次在任何地方运行、可伸缩和高性能。.NET Core旨在构建针对各种设备的应用程序,包括物联网和 游戏 机。
Visual Studio 2019和Visual Studio Code是世界上最先进和最现代的集成开发环境。这两个IDES都支持当今的现代需求,并且专注于干净、速度和生产力。在这里了解有关VisualStudio 2019功能的更多信息:VisualStudio 2019新特性.
.NET Core是快速的
.NET Core 3.0 是快速的。与.NET Framework和.NET Core 2.2及以前的版本相比,.NET Core 3.0的速度很快。.NET Core比其他服务器端框架(如Java Servlet和Node.js)快得多。
根据TechEmpowers发布的一份报告,.NET Core比任何其他框架都要快得多。 TechEmpower基准测试通过对多个Web应用程序框架做如下比较:数据库的单表查询,多表查询,文件访问,数据更新,明文和JSON序列化等任务进行比较。
.NET Core是轻量级的
.NET Core是轻量级的。.NET Core可以包含在您的应用程序中,也可以安装在并行用户、机器范围内或服务器上。.NET Core可以部署在Docker容器中。
.NET Core是友好的
.NET Core通过.NET Standard与.NET Framework,Xamarin和Mono兼容。 .NET Core还支持使用各种流行的Web框架和库,如React,Angular和JavaScript。 TypeScript是.NET Core和Visual Studio生态系统的关键组件之一。
我们可以使用.NET Core构建哪些类型的应用程序?
.NET Core是一个通用的软件开发框架。它允许开发人员构建各种软件,包括Web,桌面,移动,云, 游戏 ,物联网等。
.NET Core更适合跨平台需求。.NET Core应用程序支持在Windows,Linux和macOS上运行。Linux和macOS上也都支持Microsoft流行的开源代码编辑器Visual Studio Code。VS Code支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如Sublime,Emacs和VI)都支持.NET Core。
Web应用
ASP.NET Core是.NET Core生态系统的核心组件。ASP.NET Core是一个用于构建网页的框架。ASP.NET Core基于MVC架构,并提供用于构建Web的通用库。开始使用ASP.NET Core
Razor是一个使用C#和TypeScript构建动态网页的新框架。Razor是一种改变 游戏 规则的技术,它允许C#开发人员用C#构建Web应用程序。
移动开发
移动开发是.NET Core的关键产品。Xamarin是一套使用C#构建跨平台移动应用程序的工具和库。Xamarin允许开发人员在共享的.NET代码库上为IOS、Android、Windows和MacOS构建本地应用程序。
桌面应用程序
.NET Core提供各种框架和工具来构建桌面应用程序。Windows窗体、WPF、UWP和Xamarin是构建桌面应用程序的四个主要框架。.NET Core还支持这些框架之间的互 *** 作性。
Windows窗体是一种构建Windows桌面应用程序的技术。Windows窗体是.NET Framework的首批组件之一。
WPF(Windows Presentation Foundation)是一种较新的构建Windows桌面应用程序的技术。WPF是作为.NET Framework版本的一部分发布的
了解有关wpf的更多信息这里.
UWP是一种较新的技术,是在Windows 8之后发布的。如今,UWP已经成熟。UWP使用XAML作为表示层(UI)和C#作为后端编程。但是,貌似微软已经宣布了他的死亡。
微服务和容器
微服务是一种新的设计模式,它允许开发人员构建软件服务的小模块,这些模块可以使用定义良好的契约相互通信。微服务使开发、测试和部署应用程序的独立部分更加容易。一旦部署完毕,每个微服务都可以根据需要独立地进行缩放。.NET Core支持微服务体系结构,它允许跨平台服务与.NET Core一起工作,包括使用.NET Framework、Java、Ruby或其他开发的服务。
容器是今天的越野车。.NET Core的模块化、轻量级和灵活性使得将.NET Core应用程序部署到容器中变得更加容易。容器把一个应用程序的所有的配置文件和依赖关系,包含在一个单独的、小型的和独立的软件部署单元中。容器可以部署在任何平台、云、Linux和Windows上。.NET Core与Docker和Azure Kubernetes服务都很好地协作。
云应用程序
云应用程序现在越来越受欢迎。Azure支持各种云应用程序。.NET Core和C#应用程序可以通过Visual Studio 2019部署在Azure上。
物联网
物联网应用正在增长。.NET Core支持通过UWP框架为运行Windows 10 IoT Core的物联网设备进行物联网开发。UWP可用于构建在由Raspberry Pi,MinnowBoard MAX,DragonBoard 410c等提供支持的物联网上运行的应用程序。
机器学习
机器学习是软件开发人员日益增长的领域。
参考微软官方文档
游戏
Unity是最受欢迎的 游戏 开发框架之一。C#和UWP用于构建移动,桌面,控制台,电视,VR,AR和Web 游戏 。
.NET Core 3.0中的新增的功能有哪些?
最新版本的.NET Core 3.0刚刚发布。C#8和Windows桌面是这个版本的两个主要新增部分。
C#8是C#语言的最新版本。C#8是.NET Core的一部分。C#8增加了新功能,包括
Windows桌面是.NET Core 3.0的新增功能,允许开发人员使用Windows窗体,WPF和UWP构建Windows桌面应用程序。
以下是.NET Core 3.0中的其他功能和增强功能列表,
参考文献
首先,你要设计成WebForm,这是前提,大众化平台,浏览器是最好的跨平台载体,如果你一定要做成APP应用程序,那你就只能用WPH模块开发了,开发好了后还需要使用安装WP系统的手机来运行,无论开发和运行都是64位,所以最便捷方法还是做成Web,Web是不管你用什么手机系统的,有浏览器就行。
其次,网页布局依据手机相对尺寸,特别注意苹果手机不支持CSS3和HTML某些特性,你使用的时候要几个手机都测试一下,如果有条件,你可以下载一些好的手机WEB框架。如果像自己设计,就自己动手做。
第三,下载一个域名解析软件,申请一个域名,有免费的比如nat123、甲壳虫,映射你的域名到外部网络。
第四步,安装部署IIS服务器,发布网站到你刚才申请映射的域名。
一切成功后,你就可以通过手机在任何有信号的地方查询你的网站了.
注意一点,数据库 *** 作是WEB服务器在本地 *** 作,跟手机端无关,使用WebService *** 作SQL Server,然后再手机去 *** 作是个非常愚蠢的办法,十分慢,流量消耗超级快,能用但十分差劲,你要 *** 作数据库,直接 *** 作就好了。
如果你要做成APP给客户,那就用分别做一下iphone、Android、Wph的APP,功能简单拖个WebBrowser上去就好了,一打开实际上是在浏览网站。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)