我有一个非常简单的ASP.NET Web应用程序,它是在Visual Studio 2008(SP1)下创建的,目标是.NET 3.5。
-
启动页是一个包含4个文本框、一个按钮和两个JScript函数的简化ASPX页:
-
主体的OnLoad处理程序。此函数只将文本框的值设置为特定的测试日期和时间。
-
按钮的onclick处理程序。此处理程序调用本地化Web服务并显示其结果。
-
本地化是一种Web服务。它的任务是获取用户的地区和国家信息,创建CultureInfo对象,并分析日期和时间信息,以便验证开始日期早于结束日期。这是
只有
不需要大量的JScript代码就可以实现这一点的可靠方法,而JScript代码实质上是在重新设计轮子。结果作为JSON字符串返回。
在我开始从调试器获取这些奇怪的错误消息之前,一切似乎都正常工作。调试器将在此行中断:
try {
_this._webRequest.completed(Sys.EventArgs.Empty);
}
finally { // <-- RIGHT HERE, specifically, on the brace
if (_this._xmlHttpRequest != null) {
_this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
_this._xmlHttpRequest = null;
}
}
错误信息如下:
Microsoft JScript编译错误:应为“;”
现在,这是令人费解的,研究通常建议确保安装了Java。一开始我嘲笑他,以为我有着广博而明显的高明的才智,不可能犯下如此愚蠢的错误。
每个人
了解Java和JavaScript之间的区别。所以,当没人看的时候,我试了一下。没什么区别。
我不知道是什么导致了这一切的发生。堆栈跟踪显示它是堆栈上唯一的调用。甚至没有任何局部变量可供使用。其中出现的文件是一个生成的动态脚本资源。但是,函数是sys.net.xmlhttpexecutor对象的\onreadyStateChange函数。所以我至少可以说它在Ajax代码中持续发生。
还有人看到这个吗?如果是,原因是什么?你是如何解决的?
服务器端:
-
视窗2000
-
IIS 7
-
ASP.NET
-
.NET 3.5
发展
-
Visual Studio 2008 SP1版
-
.NET 3.5
-
工业工程8
-
IIS 7