.NET
左直拳
程序猿
展开
-
nhaibernate对象不宜随意更改值
详细点说,就是从数据库中获得的NHibernate对象,不能当成普通的实体类对象,比如为了方便传参数,将里面的属性赋值。这种对象里面还有许多私有属性,实则与数据库有着千丝万缕的关系。如果此时将会话提交,不管有没有显式提交该对象,数据库都会发生改变。可见,在NHiberNat中,事务提交时,会将同一个session里面的所有改动都持久化到数据库中,不管有没有显式调用。提交之后,发现数据库中张三的类型变成了"牛逼人物",李四变成了"小喽啰"但是,我们并没有提交p1和p2。原创 2023-06-16 17:32:41 · 189 阅读 · 0 评论 -
NHibernate放在异步函数里报Flush during cascade is dangerous错误问题
如题所示,NHibernate对象不能放在异步函数里,否则可能会报Flush during cascade is dangerous的错误。说可能,是因为不一定每次都报错,可能10次有4、5次报错。(这种错误更令人抓狂)。原因是,NHibernate并非线程安全,如果两个线程同时使用同一个会话(Session),容易出现不可预知的后果。因此要避免将NHibernate对象或操作放在异步函数里。多线程情况下,读取数据库没什么问题,增删改就很可能出现问题。原创 2023-06-06 16:07:52 · 332 阅读 · 0 评论 -
oracle的字段不小心存储了double.NaN导致nhibernate加载数据报illegal access to loading collection error错误问题
发现请求某些数据时,会出现超时、报错现象。是通过NHibernate获取一个ORM对象时报错,报错信息为“illegal access to loading collection error”(非法访问加载数据集合错误)。这个ORM对象是个主表对象,里面映射了从表,一对多;然后从表又有一对多。难道是数据太多了?但又不是所有的数据都会报错,只集中在其中的若干条。经过艰苦的调试,抽丝剥茧,发现又是Double类型字段中不小心保存了Double.NaN数据。原创 2023-04-26 09:06:10 · 210 阅读 · 0 评论 -
利用nhibernate实现操作实体类就能删除从表记录
一个使用NHibernate的ORM对象,对应数据库一张主表(或曰父表),然后里面又对应了多条从表记录(或曰子表),如下所示。原创 2023-04-13 18:45:48 · 555 阅读 · 0 评论 -
c#读取matlab格式文件提示找不到“mclmcrrt9_0_1.dll”问题
按照网上的教程,不必在服务器上装matlab,只须安装matlab runtime,然后将相关dll(在C:\Program Files\MATLAB\MATLAB Runtime\v901\runtime\win64)拷贝到应用程序bin下即可。然后将C:\Program Files\MATLAB\MATLAB Runtime\v901\runtime\win64下的所有dll都拷贝到应用程序下。不过将应用程序发布出来,拷贝到其他同样没有安装matlab的机器,也可以。,我应该安装R2016a版本。原创 2023-04-04 18:25:48 · 2250 阅读 · 2 评论 -
C#读取泛型变量的值
话说,我有一段代码,对传过来的对象,希望判断它是否为空,或者里面是否有值。不为空,有值,才保存到缓存。不过这个对象是泛型变量。泛型利于编写共用代码,但也有局限性,因为无法直接知道它的确切类型,更遑论读取里面的值。不过,利用反射,其实也能够它的值。我放下笃NET已经很久了,不过现在又捡起来。由于之前有一点积累,记忆一旦被唤醒,雄风犹在。原创 2023-03-01 18:48:30 · 751 阅读 · 0 评论 -
未能加载文件或程序集“System.Net.Http, Version=4.2.0.0,。。。”或它的某一个依赖项
另外,曾经号称宇宙级IDE的visual studio,2022这个版本,连在文件中查找这个最基本的功能都不能保证了,查一个东西,有些能查出来,有些却不行,简直无法使用。考究引用的dll路径,是C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.8\System.Net.dll,估计.NET4.8下这个System.Net.Http,版本是4.2.0.0。这是一个几年前的项目。无语了,这笃NET。原创 2023-03-01 14:06:53 · 7047 阅读 · 3 评论 -
oracle字段存入NaN值后查询显示为0问题
今天发现了一件古怪的事情。C#代码运算过程中,不小心将一个Number型字段赋了NaN值,并保存到数据库,之后NHibernate就无法构造这条记录对应的对象了,提示什么。实在搞不懂,只好先记下来,转头去研究茴香豆的茴字,究竟有多少种写法。原创 2023-02-27 17:15:11 · 598 阅读 · 0 评论 -
.net 4.6.2连接redis报The assembly for System.Buffers and System.IO.Pipelines could not be loaded问题
后来发现,我机器点net的版本是4.8,另一台win7的是4.7.2,而服务器是4.6.2。将服务器.net升级到4.7.2,问题解决。这段时间重操旧业,搞笃NET搞得不亦乐乎。发现有个问题,程序发布以后,同样的程序和配置,在服务器上报错,在开发机正常。将服务器的程序原原本本打包,拿到我自己开发机器上(win10)运行,正常;拿到另一台win7的机器上运行,也正常;看来是服务器环境的问题。在网上寻寻觅觅,比较dll版本啦,修改web.config啦,都不好使。从中可知,是在连接redis时报错了。原创 2023-02-20 18:15:26 · 333 阅读 · 0 评论 -
cas单点登录后重定向次数过多问题以及调试cas-dot-net-client
解决这种问题,不管如何比较配置、调试WEB项目,都不好使,都属于盲猜,狗咬乌龟,无处下牙;在这里,WEB项目是客户端站点,它依赖于cas的客户端DotNetCasClient.dll。4、Visual Studio打开的DotNetCasClient环境中,调试-附加进程,选相关的w3wp.exe(假设我们用IIS承载web项目),那么在浏览器中访问web项目,登录,返回,即可调试DotNetCasClient。web项目应用cas作为单点登录站点,登录后无法打开WEB项目的页面,报错,说重定向次数过多。原创 2023-02-09 18:47:38 · 1939 阅读 · 0 评论 -
visual studio 2022打开旧项目缺乏.net 4.5依赖问题
3、将里面的build.NETFramework\v4.5 拷贝到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5,覆盖即可。为防万一,可以先将C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5备份一下。按照网上提示,下载一个nuget包,解压后复制到系统相关位置,问题解决。原创 2023-02-09 18:26:16 · 369 阅读 · 0 评论 -
c#使用委托 + 泛型,编写可复用代码
代码结构是一样的,就是中间不同,而且操作的数据类型也不同。委托特别适合于上下代码相同,唯独中间部分不同的情况,将函数通过参数传递方式传入,我谓之曰注入式开发。我是见不得重复代码的,尽管复用部分不多,也尽量将公共部分提取出来。还用到了委托和泛型,极尽奇淫技巧,写完还自鸣得意,觉得自己做一个程序员,肯定是够格的。重复代码其实也有好处,就是写的时候很快,复制粘贴,管它是否冗余,先搞出来,看到成果再说。不过,加入委托后,我感觉是代码可读性变差了。在修改旧项目的时候,发现代码有一些重复,于是做了一点修改。原创 2023-02-06 18:51:13 · 228 阅读 · 0 评论 -
.net调用Oracle 报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本问题
我忽然明白了,System.Data.OracleClient其实是一个适配器,或者只是提供了一些接口,本身并不实现对oracle的读取。如果我的机器要读oracle的话,应该装一个oracle的客户端。项目引用的是System.Data.OracleClient,版本是4.0.0.0。网上好多抄来抄去的文章说是权限问题,但从他们的内容表述来看,估计是读取本机的oracle。知道原因就简单了,我设置系统环境变量path,添加了一条路径指向oracle客户端免安装版下的bin,重启IIS,搞定。...原创 2022-08-26 18:06:32 · 4046 阅读 · 0 评论 -
使用http的asp.net项目接入https的CAS单点登录系统
使用http的应用网站,接入https的CAS单点登录系统,结果就是登录之后,提示重定向次数太多,打不开应用网站的页面。猜测原因是单点登录服务器与集成应用网站之间没有建立起有效连接。实际上应该也是,因为参照网上教程的做法,问题解决。具体情况是这样的:客户近期在搞等保测试。测出了一些问题。其中之一是CAS登录的时候,密码明文传输。世界上没有绝对的安全,安全都是相对的,而且有成本,需要权衡。或者说,这是质量属性里的一个权衡点。https解决的就是传输的安全问题。由于客户的网络环境是专网,没有接入互联网,所原创 2022-04-22 17:54:43 · 1513 阅读 · 0 评论 -
Could not load type ‘System.ServiceModel.Activation.HttpModule‘ from assembly ‘System.ServiceModel
昨天有个同事在服务器上装arcmap,提示需要.net framework 3.5 sp1或以上支持。可笑,系统都已经安装.NET 4.6了,肯定是没有问题的。查了下,说是WIN 10或者一些windows服务器没有默认打开.NET 3.5的缘故。于是进去控制面板,服务器管理,然后将相关功能。net 3.5勾上,arcmap安装继续。然后今天用户说,系统打不开了。出现了报错画面该同事昨天在告诉我问题前,自行到IIS上捣鼓,妄图将IIS从.NET2.0切换到.NET4.0,其实就是下拉框,说:好奇怪哦原创 2021-04-07 12:06:05 · 641 阅读 · 0 评论 -
防御CSRF问题
CSRF,Cross-site request forgery,跨站点请求伪造。简而言之,这个攻击就是伪造。伪造出一个合法站点的链接,诱使你去点击;或者伪造一个表单,提交给合法站点。在一个系统里面,用你这个合法的账号,规规矩矩地浏览,使用,是不会出什么乱子的,你所点击的链接,提交的表单,都是开发人员预先控制范围之内。但CSRF攻击,则是伪造出一个链接,链接地址带上居心不良的参数,比如指向删除动...原创 2020-03-16 18:16:24 · 361 阅读 · 0 评论 -
一段批量改文件名的C#代码
有一批文件名太长了,怎么看怎么不顺眼,不爽,要改名。30个文件,一个个改,应该也很快,但玷污了程序员的名头。这种工作,只能让计算机来做。DOS命令好像很弱,还是上代码吧,在C#里搞一个单元测试,应该也很快。=============>上代码 [TestClass] public class UnitTest3 { Regex rx = ne...原创 2020-01-09 17:23:33 · 517 阅读 · 0 评论 -
C# 实现readUTF()函数
某网站的数据输出到前端,先用Base64进行加密,包裹一层;解开以后,是二进制数据。那要解开这个二进制数据,就只能按照该网站的算法,读取若干个字节,就是某个数据;接着再读取若干个字节,是另一个数据。然后这个算法本身,虽然写在JS文件里,但它又做了一定的混淆。本来读别人的代码就不容易理解,混淆了以后,就更加难懂了。我理解这样做的好处在哪里。第一个肯定就是保密了。第二个是数据比较紧凑,体积小,利于提...原创 2019-10-18 10:29:40 · 766 阅读 · 0 评论 -
解决SqlTransaction用尽的问题
解决SqlTransaction用尽的问题有时候程序处理的数据量比较小时,四平八稳,一切安然无恙,但数据量一大,原先潜伏的问题就暴露无遗了。我做的一个项目,是负责一个厂的考勤的。厂里有员工1000多号人。按每人每天打4次卡,一个月30天,则产生的考勤记录数目为1000 * 4 * 30 = 120,000条。在处理这些记录时,我采用的办法是先生成SQL语句,然后执行这些SQL语句: Sql原创 2005-10-07 22:31:00 · 3115 阅读 · 0 评论 -
应用XML架构文件
应用XML架构文件工作上,有时会遇到系统间数据交互的问题。之前我做过的方法是,源系统将数据导出为文本文件(TXT后缀),然后上传到目标系统,分析、读取。现在好一点,应用web service,编写一个数据接口,在程序里直接调用,而无须再经过人工上传一道工序。并且web service传送的数据,全部是XML格式,可以很方便的读取,不必再自己写分析算法。当然,也因为是XML格式,每个字段值前后各一个原创 2005-10-01 11:13:00 · 2886 阅读 · 0 评论 -
网站的身份验证
网站的身份验证左直拳前段时间用ASP.NET做一个网站,其中有个要求是网站里有些页面或功能需要用户登录后才能浏览或使用。应该没有什么问题,因为ASP.NET提供了完善的身份验证服务。ASP.NET 与 IIS 一起使用以支持身份验证。有四种验证方式供君选择:None,Windows,Form以及Passport。Passport我不知道怎么用,而None又不知道有什么用,估计是逗你玩。用Form吧原创 2005-11-24 00:22:00 · 3824 阅读 · 3 评论 -
让你的软件支持繁体中文
让你的软件支持繁体中文中国台湾、香港的汉字用的是BIG5编码,而大陆的汉字用的是GB编码(GB2312也好,GBK也好),简体中文软件直接拿到繁体中文环境下运行,问题就出来了。怎么办呢? 我们的软件是一款用C#.NET+ASP.NET开发的,所谓B/S型的软件,客户端只须用浏览器访问我们的服务器就行了。很自然的就想到,把代码中的所有的简体字都转换成繁体字,问题不就解决了吗?说干就干。从网上找来了一原创 2005-06-14 22:04:00 · 7412 阅读 · 2 评论 -
Localhost与数据库连接
Localhost与数据库连接前几天我到客户那里实施,在一台新装的机器上安装我们的软件。配置如下:操作系统:windows2003数据库:SQL SERVER 2000支撑环境:.NET FRAMEWORK 1.1应用软件安装好后,登陆时提示“数据库连接失败”。其中服务器=localhost,也就是本机了,数据库名也正确无误。奇怪啊。以前可没出过这种问题。按道理讲,本机已经原创 2006-01-23 11:38:00 · 4340 阅读 · 0 评论 -
执行完毕再往下执行?
执行完毕再往下执行?左直拳我写了一段代码,如下:Busy();//进行大工作量,耗时的操作BigSetup();Free();其中,函数Busy()的作用是将鼠标光标设为代表等待的沙漏形状,并且显示一幅忙碌的图片,而函数Free()则正好相反,将光标设回默认的箭头状,并显示清闲的图片: private void Busy()原创 2006-03-23 11:24:00 · 1970 阅读 · 0 评论 -
。NET程序安装包制作(WinForm)
。NET程序安装包制作(WinForm)一、新建项目—安装和部署项目—安装项目二、选择安装文件。1、进入文件系统视图。方法为选定该项目,鼠标右键,弹出快捷菜单,选视图-文件系统。也可以直接点“解决方案资源管理器”上部的快捷图标。2、在“应用程序文件夹”里添加程序需要用到的文件,例如EXE文件,配置文件,图标文件,等等。3、用户的程序菜单创建一文件夹,命名,这个就是将来出现在用户原创 2006-02-27 23:54:00 · 3989 阅读 · 1 评论 -
.NET中用什么数据类型来对应char *
.NET中用什么数据类型来对应char *左直拳有时候需要在。NET程序中调用别的语言开发的DLL,比如,访问个驱动程序什么的。这里存在着一个数据类型对应的问题。比如,被调用的DLL中存在一个函数:HRESULTVerify( [in] long lFlags, [in] unsigned char* pData,原创 2006-04-07 19:35:00 · 2688 阅读 · 0 评论 -
利用正则表达式检查时间的合法性
利用正则表达式检查时间的合法性左直拳许多时候,少不得要检测一下用户输入的时间格式是否正确。对于B/S结构程序而言,既可以在服务器端检查,也可以在浏览器端检查,将错误封杀于提交之前,免得拿这些小事去烦服务器。我有个WEB应用程序,需要在一个datagrid里面输入时间。决定在提交前检测时间合法性。思路如下:1、 设置一个可使用自定义的javas原创 2006-04-20 16:39:00 · 3600 阅读 · 0 评论 -
。NET程序安装包制作(WEB安装项目)
。NET程序安装包制作(WEB安装项目)左直拳一、新建项目—安装和部署项目—WEB安装项目二、安装文件夹。1、进入文件系统视图。方法为选定该项目,鼠标右键,弹出快捷菜单,选视图-文件系统。也可以直接点“解决方案资源管理器”上部的快捷图标。2、在“WEB应用程序文件夹”里添加程序需要用到的文件,例如HTM文件,ASPX文件,BIN文件夹,等等。3、设置虚拟目录属性。右击“WE原创 2006-04-28 14:25:00 · 4306 阅读 · 0 评论 -
在.NET程序安装包中附带 SQL SERVER数据库安装功能
在.NET程序安装包中附带 SQL SERVER数据库安装功能左直拳一、 安装文件夹中添加数据库安装程序dbInstall.dll以及建数据库脚本data.sql。dbInstall是一个自己编写的DLL,代码见附录。二、 添加自定义功能。方法:选定安装项目,鼠标右键,弹出快捷菜单,选视图-自定义操作。也可以直接点“解决方案资源管理器”上部的快捷图标。原创 2006-05-13 19:13:00 · 2923 阅读 · 0 评论 -
Web程序中利用web.config解决无法输出excel页面的问题
Web程序中利用web.config解决无法输出excel页面的问题左直拳WEB应用程序中,有时需要将页面以WORD或EXCEL的形式输出。做法是://以WORD的形式输出Response.ContentType = "application/msword"; //以EXCEL的形式输出Response.ContentType = "application/vnd.ms原创 2006-05-29 17:21:00 · 2247 阅读 · 0 评论 -
我终于用到了委托
我终于用到了委托左直拳。NET带来了一些新的东西,其中委托是一个。我总觉得委托很神秘,比较难理解。看帮助,查资料,不是语焉不详,就是故弄玄虚,越看越糊涂。有时候,真有点怀疑网上写文章的这些人自己是否真的弄清楚了。后来编码的时候用到了一下,总算有了点认识。一言以蔽之,委托的作用是使得函数可以当作参数和变量来使用。(今天又查了一下帮助,里面说委托作用类似于“ C++ 中函数指针”,因为原创 2006-06-15 19:17:00 · 2761 阅读 · 0 评论 -
用户控件可以嵌套用户控件
用户控件可以嵌套用户控件左直拳使用用户控件有许多好处,比如可以封装屏蔽大量细节,使用缓存以提高页面性能。但最大的好处应该是提高重用性。并且今天我在自己写的用户控件上嵌入了另一个自己写的用户控件,结果发现一点问题都没有,真是太好了。幸甚至哉,博以咏志。原创 2006-11-01 15:30:00 · 2425 阅读 · 2 评论 -
Atlas与页面缓存冲突造成报错问题
Atlas会与页面缓存冲突,造成Unkown error问题。Atlas与页面缓存冲突造成报错问题 左直拳近日在网页应用了Atlas,不料部署到服务器后,却频频出错,提示:Unkown error。既然是出错,又不说是什么错误,这不为难人吗?更奇怪的是,并不是所有的时候都出错,基本上是同样的操作,10次会有1到2次没问题。本来在本地开发的时候就出过错,只不过频率很小,因为是系原创 2006-10-26 09:33:00 · 2217 阅读 · 1 评论 -
并非万能的XML
并非万能的XML左直拳XML是个炙手可热的东西,出来很多年了,好象还听说将取代HTML(不过直到今天HTML1.1还健在,其实我认为两者很大程度上并无可比性)。有一次我去面试,人家问我熟不熟悉XML,答曰不会,结果被“人来落闸放狗”地赶了出来。现在我已经在一些地方应用到了XML。众所周知,。NET与XML绑得很紧,比如DataSet,比如WEB SERVICE传递的参数以及返回值。做产原创 2006-06-09 18:22:00 · 3130 阅读 · 0 评论 -
在ASPX页面中输出XML
在ASPX页面中输出XML左直拳因为工作关系接触了一下RSS。了解得不多,按我的理解,Rss feed其实就是一个XML文件。不过这个XML文件往往不是从一开始就写好的静态文件摆在那里,而是根据条件有系统输出。比如,我新浪的博客的Rss feed其实就是:http://blog.sina.com.cn/myblog/index_rss.php?uid=1174724855类似原创 2006-11-07 17:44:00 · 2413 阅读 · 0 评论 -
从EXCEL导入数据到SQL SERVER
从EXCEL导入数据到SQL SERVER左直拳介绍两种途径将数据从EXCEL中导入到SQL SERVER。一、 在程序中,用ADO.NET。代码如下: //连接串string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + [E原创 2006-06-22 18:50:00 · 5854 阅读 · 4 评论 -
CSS元素POSITION的用法一例
CSS元素POSITION的用法一例左直拳页面上用到了Atlas的控件atlas:UpdateProgress,以便在进行各种操作时显示一个等待图标,给用户解解闷,好让他们在漫长的等待结果的岁月中不那么烦躁,知道系统正在忙。形如:atlas:UpdateProgress ID="UpdateProgress1" runat="server" > ProgressTe原创 2006-11-06 14:24:00 · 2163 阅读 · 0 评论 -
不可靠的SESSION
不可靠的SESSION左直拳SESSION不可靠。按道理讲,使用Session.Abandon,当前会话就应该死翘翘,彻底消失。使用Session.Clear或Session.RemoveAll,内容也应该被铲除。但事实并非如此,在使用过程中,有时会遇到本应消失(用Abandon强行终止)或被替换了的SESSION借尸还魂,僵而不死的情况,时不时的跳出来,吓人一跳。但又不是次次如原创 2006-11-07 17:22:00 · 2125 阅读 · 0 评论 -
没有源代码也可以调试
没有源代码也可以调试左直拳不能调试真是很不方便。我穷毕生之功,搞了套用于开发WEB应用程序的工具包,或者说得时髦和吓人一点,叫开发平台。里面封装了许多常用的方法、函数、类,设置了一些应用系统常见的功能,如登陆,权限,菜单,人事等等,甚至包括传说中的工作流。利用这套东西,可以忽略许多细节和烦琐的问题,使得开发者可以专注于待开发的模块。由于种种原因,不能随便开放工具包的源代码给其他程序原创 2006-07-07 15:37:00 · 2878 阅读 · 0 评论 -
使用母版页
使用母版页左直拳早在二年前使用ASP。NET1。1的时候,面对许许多多风格、控件位置摆放非常相似的页面,总在做着拷贝、粘贴、修改的工作,虽然已经尽量使用用户控件,但还是有相当多重复的代码。我就想:“如果可以搞个自定义的页面基类,上面定好一些常用的样式、控件,以后创建新页就从基类派生该有多好”。可是一直没有实现该功能,或者说,是没有这样做过。人就是这样奇怪,明知道某件事是很好的,可总提不原创 2006-11-14 12:27:00 · 2106 阅读 · 0 评论