[FIX] .NET Framework 1.1 で Server.Transfer メソッドが IsPostBack プロパティを呼び出さない

文書翻訳 文書翻訳
文書番号: 821758 - 対象製品
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

現象

.NET Framework version 1.1 の下で、Server.Execute メソッドまたは Server.Transfer メソッドが HttpContext.RewritePath メソッドと共に動作しないように見えます。Server.Execute または Server.Transfer メソッドが、HttpContext.RewritePath メソッドの機能を使用するアプリケーションを中断させることがあります。Server.Transfer または Server.Execute メソッドを受け取るページ上で ASP.NET コンポーネント モデルの処理が完全には実行されず、ポストバックされることはありません。1.0 のポストバックでは、転送で Forms コレクションと QueryString プロパティ (たとえば、Server.Transfer("WebForm1.aspx", true)) を保持するように指定してから、ページをページ自身に戻すように転送した場合、ページは同じライフ サイクルを通過し、再度 IsPostBack プロパティに true が設定されます。1.1 のポストバックでは、同じ状況で IsPostBack プロパティに false が設定されます。

原因

.NET Framework のバージョン 1.0 と 1.1 では、Server.Transfer の動作が異なります。

バージョン 1.0 では、Server.Transfer("WebForm1.aspx", true) は、Forms コレクションと QueryString プロパティを保持し、Transfer メソッドをポストバックの一部と見なします。そのため、Page.IsPostBack プロパティに true が設定されます。

バージョン 1.1 では、この転送はポストバックの一部とは見なされず、Server.Transfer が自分自身に戻るように転送した場合でも、Page.IsPostBack には false が設定されます。

詳細

この資料に記載されているエラーを再現するには、次のコードと手順を使用します。
  1. ASP.NET Web アプリケーションを作成して、ページ上の任意の場所に、Web ボタンを名前を変更せずに追加し、次に WebForm1.aspx ファイル内のコードを以下のように変更します。
    		private void Page_Load(object sender, System.EventArgs e)
    {
    	// Put user code to initialize the page here.
    	if (Page.IsPostBack)
    	{
    		Response.Write("PostBack.");
    	}
    }
    
    
    private void Button1_Click(object sender, System.EventArgs e)
    {
    	Server.Transfer("WebForm1.aspx",true);
    }
    	
  2. .NET Framework 1.0 上でプロジェクトをコンパイルします。
  3. Webform1.aspx に対する分離コード ページの次の行にブレークポイントを設定します。
    if (Page.IsPostBack) 
    
    Server.Transfer("WebForm1.aspx",true);
  4. プロジェクトをデバッグするには、F5 キーを押し、次にコードをステップ実行します。コードのステップ実行時、無限ループが発生します。これは、IsPostBack の値が常に true であるため、予期される動作です。

状況

マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 821758 (最終更新日 2003-08-13) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 821758 - 最終更新日: 2014年2月27日 - リビジョン: 3.2
この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework 1.1
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
キーワード:?
kbnosurvey kbarchive kbnetframe100presp3fix kbvsnet2003presp1fix kbnetframe110presp1fix kbwebforms kbqfe kbcode kbfix kbbug KB821758
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com