1

PageAsyncTaskWeb フォーム vs2010 fw4を使用する古いプロジェクトをサポートする必要があります。

ただし、この単純なコードはコンパイル + 実行 (デバッグ モード/トレース モードでエラーなし) を行いますが、応答は決して終了しません。

デバッグ モード + ブレークポイントで見ると、コードのすべての段階に到達します。

public partial class _Default2 : System.Web.UI.Page
{
 IAsyncResult BeginGetData(object sender, EventArgs e, AsyncCallback callback, object state)
    {
        SqlConnection con = new SqlConnection(@"Data Source=... Asynchronous Processing=True;");
        var sql = @"   SELECT   [NAME] FROM [WebERP].[dbo].[t]";
        {
            SqlCommand _cmd = null;
            try
            {
                _cmd = new SqlCommand(sql, con);
                _cmd.CommandTimeout = 100000;
                con.Open();
                return _cmd.BeginExecuteReader(EndGetData, _cmd);

            }
            catch (Exception ex)
            {
                if (_cmd != null) _cmd.Dispose();
                con.Close();
                throw;
            }
        }
    }

    void EndGetData(IAsyncResult ar)
    {
        (ar.AsyncState as SqlCommand).EndExecuteReader(ar);
        Response.Write(1111); // HttpContext.Current.Response also doesnt help
    }

    void TimeoutData(IAsyncResult ar)
    {
        Response.Write("Could not retrieve data!");
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        PageAsyncTask task = new PageAsyncTask(BeginGetData, EndGetData, TimeoutData, null, true);
        Page.RegisterAsyncTask(task);
        Page.ExecuteRegisteredAsyncTasks();    
    }
}

質問

返事は尽きることがありません。私が見るのは:

ここに画像の説明を入力

何が欠けていますか?

(nbAsync="true"は page ディレクティブにあります。また、ケースを説明するためだけにコードが単純化されました)

4

1 に答える 1