出差之前

来源:互联网 发布:windows 域名解析 编辑:程序博客网 时间:2024/05/02 19:14

昨天LP加了会班,用VPN,我顺便试着打开实验室机器上的系统,结果打不开,由此想到,安全性连接如VPN、SSL等,对我们一般的系统来说是行不通的。

 

最近又要去沈阳联调,于是又上网查了查,关于12031错误的东东,又补充几点如下:

 

1、URL过长(这个未知,是否与状态视图大小类似?)。参见:

http://www.telerik.com/help/aspnet-ajax/blankdialogsproblem.html

 

2、跨域问题(可能性小)。参见:

http://blog.csdn.net/jinjazz/archive/2007/11/10/1877079.aspx

IE中的设置:

工具-Internet选项-安全-自定义级别-通过域访问数据源-禁用,改为“启用”

 

3、不使用mode="Legacy"。参见:

http://edu.itbulo.com/200612/110587.htm

webconfig中:<xhtmlConformance mode="Legacy"/>

 

4、网络安全设置,如VPN、SSL等。参见:

http://www.chicagotech.net/netforums/viewtopic.php?p=8545#8545

http://forums.asp.net/t/1113086.aspx

 

5、局部刷新的另外思路:iframe。这个是终极替代方案了,不过相当于要把整个程序改一遍,故属于下下策了。

 

另外,关于目录、文件名不能为中文的原因,忽然注意到有人说sln文件里面也不能有中文。用UE打开sln看了一下,里面记录了工程文件的路径,于是忽然发现,原来我的项目也是保存在中文目录下的。之前一直想着项目本身的各级目录不能有中文,没有想到这一层。等去了沈阳,先试验这个。但愿一试就灵,只是不知道在生成网站时,sln文件里面的信息会有什么影响吗?

 

在查询过程中,发现关于ScriptManager控件的AsyncPostBackTimeout属性,包括MSDN在内,网上大部分都说,其默认值为90,单位为秒,并且还有人说若设置为0,则为无限制,只有下载的《ASP.NET2.0 AJAX高级编程》(英文版)(即《Professional ASP.NET 2.0 AJAX》)中,第5章第二节(处理错误)的结尾,在介绍该控件时,却说其单位是milliseconds,令人费解。原文如下:

 

The ScriptManager allows you to customize how long to wait in the browser before considering the request orphaned and timing out. By default, the client will wait for the server to close the connection before assuming that the request has been abandoned. To specify a new default timeout for all requests, you use the AsyncPostBackTimeout property. The unit of measurement is milliseconds.

<asp:ScriptManager runat="server" ID="ScriptManager" EnablePartialRendering="true"AsyncPostBackTimeout="3000" >
按照MSDN的说法,默认值为90的话,单位应该就是秒,即一分半钟,否则90毫秒怪怪的,没什么意义;而看《Professional ASP.NET 2.0 AJAX》中上面那段例子,设为3000,应该就是针对单位为毫秒的,即3秒钟。刚刚给作者发了邮件询问此事,看看是否有回音吧。
回到家,又用PC和本本做了一下实验,发现如果登录系统后,再把IIS中的流量限制修改一下,再做AJAX操作(如翻页),就会立马跳出500错误。我把ScriptManager设为不局部刷新(EnablePartialRendering="false"),再把webconfig的customError的mode设为Off,就可以看到错误消息了,是说使用了空对象。查看一下代码估计是session丢失了,因为在重新加载列表时,要使用session。我记得大连那边最开始出现的就是500错误,后来我把ScriptManager的AsyncPostBackTimeout属性设为240,也就是4分钟(按照单位为“秒”算的),就变成了12031错误。
把这一切联系起来……
如果我把AsyncPostBackTimeout属性的设置去掉呢?会不会重回500错误?那么会不会也是session丢失的问题?那么session丢失又会是什么原因?而从500变成了12031,又是不是AsyncPostBackTimeout被设置为240的关系呢?而其单位是毫秒……
这一切都只能等到了那里再见分晓吧。
这次去可能要住上一宿,顺便把新的标准数据更新上去吧。爸妈没多久就要回去了,真想在家多陪他们两天,可是又要出差。不愿意去的另一个原因,是对这个问题还是不太有把握啊,不过现在又想到几个可能性,倒是不妨去试试……