質問編集履歴

2

補足情報追記

2020/07/31 02:46

投稿

hnikichi
hnikichi

スコア0

test CHANGED
File without changes
test CHANGED
@@ -154,8 +154,24 @@
154
154
 
155
155
 
156
156
 
157
+ ネットワークドライバの更新
158
+
159
+ ネットワークドライバの変更
160
+
161
+
162
+
157
163
  ### 補足情報
158
164
 
159
165
 
160
166
 
161
167
  SQLServer2019の入ってるサーバーでアプリを実行しても同様の現象が出るが、LANケーブルを抜くと出ない。
168
+
169
+
170
+
171
+ ネットワーク環境によって挙動が変わったので追記します。
172
+
173
+ SQLServerにWinformアプリを入れてLANケーブルをささずに検証・・・OK
174
+
175
+ SQLServerにLANケーブルをさす・・・NG
176
+
177
+ 接続先のネットワークにWindowsのDC追加・・・OK

1

7/31 検証分の追記

2020/07/31 02:46

投稿

hnikichi
hnikichi

スコア0

test CHANGED
File without changes
test CHANGED
@@ -27,6 +27,18 @@
27
27
 
28
28
 
29
29
  大体30秒~40秒ぐらいの感覚でExecuteReaderメソッドが2秒ほど止まります。
30
+
31
+
32
+
33
+ 7/31追記
34
+
35
+ テストプログラムを作成し、3分ほど5秒間隔でExecuteReader()を実行して、実行する前と後で、時間を出力しています。下記のような感じです。 09:46:00 ExecuteReader() 09:46:00
36
+
37
+ 09:45:55 ExecuteReader() 09:45:57
38
+
39
+ 09:45:50 ExecuteReader() 09:45:50
40
+
41
+ 真ん中のように30秒程度の間隔でメソッドの前後で2秒ほど空きます。
30
42
 
31
43
 
32
44
 
@@ -62,6 +74,76 @@
62
74
 
63
75
 
64
76
 
77
+ 7/31追記
78
+
79
+ 下記のようなテストコードで再現
80
+
81
+ private void Button_Click(object sender, EventArgs e)
82
+
83
+ {
84
+
85
+ test a = new test();
86
+
87
+ a.Read();
88
+
89
+ }
90
+
91
+ class test
92
+
93
+ {
94
+
95
+ void read()
96
+
97
+ {
98
+
99
+ System.Data.SqlClient.SqlConnection cnc = new System.Data.SqlClient.SqlConnection();
100
+
101
+ cnc.ConnectionString = [接続文字列];
102
+
103
+ cnc.Open();
104
+
105
+ System.Data.SqlClient.SqlCommand cmd = cnc.CreateCommand();
106
+
107
+ cmd.ComandText = "SELECT TOP1 * FROM [テーブル] WHERE [コード] = 1";
108
+
109
+ System.Data.SqlClient.SqlDataReader rst = cmd.ExecuteReader(); //30秒に一回ぐらいここで2秒ほど止まる
110
+
111
+ rst.Close();
112
+
113
+ cnc.Close();
114
+
115
+ }
116
+
117
+ }
118
+
119
+
120
+
121
+ ただし、イベントに直接記述するとならない
122
+
123
+ private void Button_Click(object sender, EventArgs e)
124
+
125
+ {
126
+
127
+ System.Data.SqlClient.SqlConnection cnc = new System.Data.SqlClient.SqlConnection();
128
+
129
+ cnc.ConnectionString = [接続文字列];
130
+
131
+ cnc.Open();
132
+
133
+ System.Data.SqlClient.SqlCommand cmd = cnc.CreateCommand();
134
+
135
+ cmd.ComandText = "SELECT TOP1 * FROM [テーブル] WHERE [コード] = 1";
136
+
137
+ System.Data.SqlClient.SqlDataReader rst = cmd.ExecuteReader(); //30秒に一回ぐらいここで2秒ほど止まる
138
+
139
+ rst.Close();
140
+
141
+ cnc.Close();
142
+
143
+ }
144
+
145
+
146
+
65
147
  ### 試したこと
66
148
 
67
149