Asp.net MVC4 WebAPI启用Session

原标题:Asp.net MVC4 WebAPI Session总是为null的解决方案

一、背景

之前群里有位大神说,现在Web开发最好的结构就是MVC+WebAPI+AngularJS/Ajax,通过这样来降低后端对前端的控制和影响。

正好最近在整理一个项目的代码,这个项目原本有一个BackGroundController控制器,里面所有的Action返回的都是JsonResult,心里想想干脆就改成WebAPI算了。结果改代码改到一半的时候发现了一个问题:由于有个数据提交接口的代码做了防机器提交的操作,所以在执行的时候需要访问Session取得验证字符串。但在访问Session的时候直接被抛出了NullReferenceException。

经过检查,发现是HttpContext.Current.Session为null,才使得在这里抛出异常。

浏览内容

C# WinForm注册自定义协议

一、前言

自定义协议是什么?这么突然问起来可能不太会有人想起来,但如果给你看以下几个地址,你们应该会马上反应过来:

  • tencent://xxxxxxxxxx……
  • thunder://xxxxxxxxxx……
  • qqdl://xxxxxxxxxx……
  • aliim://xxxxxxxxxx……

浏览内容

C# EntityFramework连接MySQL数据库

ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。在安装完Visual Studio之后,可以在项目中右键添加新建项,选择“ADO.NET 实体数据模型”,然后走一个非常简单的向导就可以把Entity Framework添加进项目里了。

但实际用过EF框架的人都知道,默认情况下,实体数据模型向导里是没有办法连接MySQL数据库的。

浏览内容

海马玩 0.9.0 完全去广告教程

这篇文章其实半年前就可以写出来了,但无奈我懒癌发作,一直拖到现在。

我们都知道,在电脑上玩安卓游戏并不是一件特别难的事情,有很多的安卓模拟器可以选择。我一直以来用的是海马玩模拟器,但海马玩这软件非常让人反感的就是他的广告。你说你要营收那我也没有办法,但你除了启动界面的广告以外,右下角弹窗和启动弹窗真的非常让人反感。你的窗口里怎么塞广告我管不着,但出了你的窗口以外可都是我的屏幕,做事情不要太过分了。毕竟咱是学计算机的,去广告什么的动动脑子动动手也不是一件难事。

浏览内容

Visual Studio 2015 诊断工具异常失败 解决方案

如果说Visual Studio 2015里有什么新功能是我最喜欢的,那我一定会说是新增的诊断工具,它可以在调试程序时追踪程序的CPU和内存使用率,如果在调试的时候看到内存使用量不断的增长,就可以判断程序中存在没有即时释放的资源,非常明显好用。

不过最近不知道为什么它启动不了了,每次启动调试的时候它只会显示一句“诊断工具意外失败。输出窗口中的诊断中心输出可能包含其他信息。

浏览内容

细说使用AForge.Video.FFMPEG的几个坑

一直觉得.net在多媒体处理方面渣得不行。最近需要做一个摄像头的程序,为了方便,用了AForge这个开源项目。AForge项目中有AForge.Video和AForge.Video. DirectShow这两个子项目,可以方便的调用摄像头。但是这两个项目最终只能取得视频帧,并不能保存为视频文件。经高人指点,AForge还有一个子项目AForge.Video.FFMPEG,它可以将图片压制成Avi视频格式。不过这个AForge.Video.FFMPEG在实际使用的时候会遇到不少坑,下面我将我在这次使用中遇到的坑分享给大家。

浏览内容

useso.com 爆炸解决方案

WordPress默认情况下使用了Google Fonts公共字体库,然而国内一直受到“Girl Friend Wall”的照顾,打不开Google的大部份服务。所以国内的WordPress都需要使用第三方的前端公共库CDN服务才能顺利打开网站。

浏览内容

C# 全局异常捕获

开发界有那么一个笑话,说是“「我爱你」三个字,讲出来只要三秒钟,解释要三小时,证明却要一辈子。「Bug」三个字母,发现需要三秒,找到需要三小时,Debug却要一辈子。”。就算是资深的程序员也会写出Bug,但Bug并不可怕,重要的是在Bug发生的时候迅速定位Bug。

在Visual Studio中调试的时候,我们可以借助VS的调试工具进行调试,一旦出现未处理的异常时,VS也会在第一时间捕获并显示出来。随着开发的进行,终于程序要打包上线了。那么在上线之出了BUG我们该如何处理呢?

浏览内容

C# 可重载运算符

对于一个没接触过.net的Java程序员来说,在.net里最不适应的大概就是字符串之间的比较居然可以用“==”运算符。因为在Java里用“==”运算符去比较两个对象是否相等,是根据两个对象所在的内存地址是否相同来比较的。

那为什么.net就可以用“==”运算符来比较两个的字符串内容是否相等呢?原因就如标题所说,.net支持运算符的重载,也正是微软在写String类的时候已经帮我们重写了“==”运算符,我们才能通过简单的“==”运算符去比较两个字符串内容是否相同,而不需要去调用字符串的Equals()方法。

浏览内容