Question

rabbitpeco on Thu, 29 Oct 2015 02:35:19


Azure SQL Database のサーバーを V2 から V12 へ
アップグレードしたところ、CONTEXT_INFO が初回接続のみ
取得でき、2回目以降は取得できなくなってしまいました。

以下のコンソールプログラムで動作確認しましたところ、

using System;
using System.Data.SqlClient;

namespace Azure_CONTEXT_INFO
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("1st:" + (GetContextInfo() ?? "null"));
            Console.WriteLine("2nd:" + (GetContextInfo() ?? "null"));
        }

        static string GetContextInfo()
        {
            using (var conn = new SqlConnection("Data Source=○○.database.windows.net;User ID=○○;Password='○○'"))
            {
                conn.Open();

                using (var cmd = new SqlCommand("SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO())", conn))
                {
                    object obj = cmd.ExecuteScalar();
                    if (obj == null)
                    {
                        return null;
                    }

                    return obj.ToString();
                }
            }
        }
    }
}


以下の出力結果となります。

サーバーのバージョン:V12
1st:07C5C765-****-****-****-************
2nd:

サーバーのバージョン:V2
1st:a1434704-****-****-****-************
2nd:a1434704-****-****-****-************

2回目以降も取得できるような解決策はありますでしょうか。

※補足情報です

コンソールプログラム実行環境の .NET Framework バージョンを記入していませんでした。4、4.5、4.5.1、4.5.2、4.6 にて確認しすべて同様の結果となりました。


Sponsored