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 以外を見る限り、それは存在しますが、この 2 つの違いはわかりません。

私が開発しているページは、.Net 4.0 を使用した ASP.Net にありますが、Web サイトには従来の 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)て、プールをクラッシュさせます。

2番目のケースは、コメントの後、ボタンを押してポストバックした後、同じページから呼び出すと、ページ、おそらくセッション、おそらく他の何かからデッドミューテックスロックに陥る可能性が非常に高くなります。

于 2012-04-13T10:47:05.933 に答える