终于解决了网站程序中的问题

上学期就偶然发现更换本机网关为某个网关后,无法在留言本中留言,一直没有研究到底是怎么回事,今天小周上公开课的时候,由于要用到留言本,昨天晚上链接的时候没有想起留言本有这个Bug,以至于今天她上课的时候我才发现学生不能提交留言,惨了,电脑室都是使用的C类地址,通过一台代理服务器连接到学校服务器的,那台代理服务器的网关可能就是那个该死的网关。后来又出现了断网的现象,这可能是那台代理服务器的问题,不能支持50多个学生多次同时访问。

下来后,我下决心再研究研究留言本程序到底哪里有问题,因为以前也配置过Web.Config的customErrors mode为Off,显示具体的出错原因,但是只是给出个Object reference not set to an instance of an object.的提示。
干脆就拿这个错误Google一下,没找到解决措施,然后再Baidu,在http://www.5iv.net/data/web5202/20050228/20050228__3806677.html里提到
id = Convert.ToInt16(objcmd.ExecuteScalar().ToString());
objcmd.ExecuteScalar()如果为空,那么tostring()就会出错,

我研究了一下程序,追踪了几次后,发现在获取客户机IP的时候有转换把IPTostring()的程序,因为以前刚编写程序的时候以为Request.ServerVariables["HTTP_X_FORWARDED_FOR"]不是String类型,所以就转换了一下,现在删掉那两处ToString(),再用那个网关留言,嘿,终于通过了!
因为获取IP的时候为了获取真实IP,所以也考虑了使用代理服务器的情况,因此会出现获取代理服务器的IP为空,就抛出这个异常,现在问题解决了,呵呵!!!!

所以,还是挺感谢小周的,至少我能下决心改掉这个Bug,但是对于上午出现的几个故障,我感到确实很抱歉……

这个该死的网关就是10.3.38.1,下午问了小欧,得知它是通过代理出去的,而其他网关是通过路由出去的。

原文地址:https://www.cnblogs.com/Tmouse/p/156251.html