1

我在编写一个 ASP.Net 页面时遇到问题,我正在努力诊断该页面失败的原因。

我正在尝试这样做:

  Dim st As New StringWriter()

  Dim strURL As String = "CourseProgramme.aspx?id=3733"
  Context.Server.Execute(strURL, st)
  txtNotes.Text = st.ToString()

这里的目的是获取在 strURL 中指定的页面的 HTML,然后将其显示在文本框中。但是,当我运行此代码时,它会使 IIS 中的 ApplicationPool 崩溃,当我查看事件查看器时,我会看到以下错误消息:

为应用程序池“blueprintdev”提供服务的进程与 Windows 进程激活服务发生了致命的通信错误。进程 ID 为“5284”。数据字段包含错误号。

这里奇怪的是,在另一个页面中,我执行了这个工作正常的代码:

  Dim strDutyStartDate As Date
  strDutyStartDate = TextboxDutyStartDate.Text

  Dim st As New StringWriter()
  Dim strURL As String = "rosteroutput.aspx?InstructorID=" & Request.QueryString("InstructorID") & "&Instructor=" & Request.QueryString("Instructor") & "&Start=" & strDutyStartDate

  Context.Server.Execute(strURL, st)
  TextBox1.Text = st.ToString

据我所见,除了我传递的 URL(确实存在)之外,我看不出两者之间的区别。

我正在开发的页面是在带有 .Net 4.0 的 ASP.Net 中,但是在网站上有一些经典的 ASP 页面。IIS 在 Windows Server 2008 R2 64 位上以版本 7.5.7600.16385 运行。

到目前为止,我已尝试将应用程序池设置为在 32 位模式下运行,但这会导致其他区域出现错误,并且该站点将无法加载。我还能做些什么来解决这个问题吗?

4

1 回答 1

0

为了让它成为一个答案,你可能在这里做的是你以某种方式触发了一个不间断的循环。

例如,调用Context.Server.Execute(strURL, st)是触发再次调用的东西Context.Server.Execute(strURL, st)等等,所以你崩溃了你的池。

第二种情况,在您发表评论之后,如果您从同一页面调用它,在按下按钮并回发之后,那么很可能会从页面陷入死互斥锁,也许是会话,也许是其他东西。

于 2012-04-13T10:47:05.933 回答