Asp.net 使用计划任务运行ASPX页时出现问题
我有一个计划任务,在IE7中每3分钟运行一次Scan.aspx。Scan.aspx按顺序从10个文件中读取数据。这些文件不断更新。文件中的值将插入到数据库中 偶尔,正在读取的值会被截断或扭曲。例如,如果文件中的值为“Hello World”,则数据库中将出现诸如“Hello W”、“Hel”等随机条目。这些条目上的时间戳看起来完全是随机的。有时在凌晨1:00,有时在凌晨3:30。有些晚上,这根本不会发生 调试代码时,我无法重现此问题。因此,我知道在“正常”情况下,代码执行正确 更新: 以下是用于读取文本文件的aspx codebehind(在Page_Load中)(这对10个文本文件中的每一个都调用):Asp.net 使用计划任务运行ASPX页时出现问题,asp.net,iis,internet-explorer-7,scheduled-tasks,webforms,Asp.net,Iis,Internet Explorer 7,Scheduled Tasks,Webforms,我有一个计划任务,在IE7中每3分钟运行一次Scan.aspx。Scan.aspx按顺序从10个文件中读取数据。这些文件不断更新。文件中的值将插入到数据库中 偶尔,正在读取的值会被截断或扭曲。例如,如果文件中的值为“Hello World”,则数据库中将出现诸如“Hello W”、“Hel”等随机条目。这些条目上的时间戳看起来完全是随机的。有时在凌晨1:00,有时在凌晨3:30。有些晚上,这根本不会发生 调试代码时,我无法重现此问题。因此,我知道在“正常”情况下,代码执行正确 更新: 以下是用于
您知道为什么在一天中多次运行(通过计划任务)时会出现问题吗?首先在ASP.NET解决方案中安装Log4Net之类的记录器,在Scan.aspx中记录方法入口和出口点,以及更新数据库的方法。这有可能为正在发生的事情提供一些线索。您还应该检查系统事件日志,查看是否有任何其他事件与失败的DB条目相关 对于这种情况,ASP.NET不是最好的选择,尤其是与Windows计划的任务配对时;这不是一个稳健的设计。更健壮的系统将在Windows服务应用程序中的计时器上运行。您用于读取文件和更新数据库的代码可以跨多个端口进行移植。如果您有权访问服务器并可以安装Windows服务,请确保也将日志添加到Windows服务 确保您阅读了下面的调试方法
.谢谢您提供的所有信息。我会试试你的建议。不幸的是,我现在支持这个我没有设置的现有设计。如果时间允许,我将研究用Windows服务实现这一点。我同意,这看起来更可靠。我添加了日志记录,并注意到问题不在数据库部分,而是在文本文件的实际读取中。请查看我的更新问题和代码。
Dim filename As String = location
If File.Exists(filename) Then
Using MyParser As New FileIO.TextFieldParser(filename)
MyParser.TextFieldType = FileIO.FieldType.Delimited
MyParser.SetDelimiters("~")
Dim currentrow As String()
Dim valueA, valueB As String
While Not MyParser.EndOfData
Try
currentrow = MyParser.ReadFields()
valueA= currentrow(0).ToUpper
valueB = currentrow(1).ToUpper
//insert values as record into DB if does not exist already
Catch ex As Exception
End Try
End While
End Using
End If