Asp.net 对于每个循环,循环两次,并且不应';VB代码中的t

Asp.net 对于每个循环,循环两次,并且不应';VB代码中的t,asp.net,vb.net,file-upload,foreach,Asp.net,Vb.net,File Upload,Foreach,我有一个For-Each循环,它应该为添加到FileUpload控件的每个文件循环一次。如果我添加1个或10个文件,它将为每个文件循环两次,我不知道为什么 在循环内部的生产中,我调用了4个不同的函数。为了解决问题,除了其中一个函数外,我已经注释掉了所有函数。SendScript\u SaveInfoToDatabase(fileName)函数仅调用写入数据库的存储过程。它没有别的作用 这里是有问题的循环。你可以看到我已经注释掉了一些不必要的东西 Protected Sub PostFiles()

我有一个For-Each循环,它应该为添加到FileUpload控件的每个文件循环一次。如果我添加1个或10个文件,它将为每个文件循环两次,我不知道为什么

在循环内部的生产中,我调用了4个不同的函数。为了解决问题,除了其中一个函数外,我已经注释掉了所有函数。
SendScript\u SaveInfoToDatabase(fileName)
函数仅调用写入数据库的存储过程。它没有别的作用

这里是有问题的循环。你可以看到我已经注释掉了一些不必要的东西

Protected Sub PostFiles()

 For Each postedFile As HttpPostedFile In fuAttachment.PostedFiles
    Dim fileName As String = Session("LoggedInRep").ToString() & "_" & Now().ToString("yyyyMMdd") & "_" & Path.GetFileName(postedFile.FileName)
    postedFile.SaveAs(Server.MapPath("~/scripts/") & fileName)

    SendScript_SaveInfoToDatabase(fileName)
    'SendScript_SendEmail(fileName)
    'SendScript_SendText(fileName)
    'SendScript_SendFax(fileName)
    'Response.Write("inner1-" & postedFile.FileName.Count.ToString & "<BR>")

Next

'Response.Write("OutterLoop1-" & "<BR>")

'btn_submit.Enabled = True
'lblSuccess.Text = lblSuccess.Text & "<BR>" & String.Format("{0} files have been uploaded successfully.", fuAttachment.PostedFiles.Count)

End Sub

是否有可能在页面加载中调用PostFiles()?连接调试器并在PostFiles的入口点上放置断点。当遇到断点时,查看调用堆栈以查看导致重复调用的原因。如果您不能执行调试器,可能会将调用堆栈写入响应(您可以故意抛出并捕获异常,以快速而肮脏的方法访问调用堆栈)。@MartinSoles-我实际上无法在此站点上进行调试。我在VS 2015中通过ftp远程编辑,调试不起作用。我习惯于在公司网络上编程,怀疑环境的变化是我的问题。虽然与本文无关,但您知道如何更改设置以进行调试吗?我通常有网站的本地副本,一旦我对某个页面感到满意,我就会将其推送到生产版本。我不知道如何通过我的安排来实现这一点。如果可能的话,我不确定通过ftp进行远程调试。VS远程调试器打开一个端口进行通信。因为运行调试器是不可能的,所以请尝试在PostFiles方法的开头将调用堆栈转储到响应(作为内联注释以避免弄脏布局)或日志文件(以便不会将调用堆栈暴露给在浏览器中执行“查看源”的任何人)。is PostFiles()是否有可能在页面加载中调用?连接调试器并在PostFiles的入口点上放置断点。当遇到断点时,查看调用堆栈以查看导致重复调用的原因。如果您不能执行调试器,可能会将调用堆栈写入响应(您可以故意抛出并捕获异常,以快速而肮脏的方法访问调用堆栈)。@MartinSoles-我实际上无法在此站点上进行调试。我在VS 2015中通过ftp远程编辑,调试不起作用。我习惯于在公司网络上编程,怀疑环境的变化是我的问题。虽然与本文无关,但您知道如何更改设置以进行调试吗?我通常有网站的本地副本,一旦我对某个页面感到满意,我就会将其推送到生产版本。我不知道如何通过我的安排来实现这一点。如果可能的话,我不确定通过ftp进行远程调试。VS远程调试器打开一个端口进行通信。因为运行调试器是不可能的,所以请尝试在PostFiles方法的开头将调用堆栈转储到响应(作为内联注释以避免弄脏布局)或日志文件(以便不会将调用堆栈暴露给在浏览器中执行“查看源”的任何人)。
Protected Sub UploadMultipleFiles(sender As Object, e As EventArgs) Handles btn_submit.Click

    btn_submit.Enabled = False

    PostFiles()

End Sub