使用Context.Server.Execute时,IIS应用程序池崩溃

时间:2012-04-13 10:21:45

标签: asp.net vb.net iis application-pool

我在编写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之外,确实存在,我看不出两者之间的区别。

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

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

1 个答案:

答案 0 :(得分:0)

为了得到答案,你在这里做的是以某种方式触发一个不停的循环。

例如,调用Context.Server.Execute(strURL, st)会触发再次调用Context.Server.Execute(strURL, st)的内容,依此类推,因此会导致您的游戏池崩溃。

第二种情况,在您的评论之后,如果您从同一页面调用它,按下按钮并回发后,那么很可能会从页面进入死互换锁定,也许是会话,也许是其他内容。< / p>