質問編集履歴

9

言葉の間違い再修正

2015/10/14 10:30

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -298,7 +298,7 @@
298
298
 
299
299
 
300
300
 
301
- 試しに、これを削除して、JavascriptやREST ClientツールでPOSTしてみると、見事にエラーになります。
301
+ 試しに、これを削除して、JavascriptやREST ClientツールでGETしてみると、見事にエラーになります。
302
302
 
303
303
  ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
304
304
 

8

言葉の間違いを修正

2015/10/14 10:30

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -252,7 +252,7 @@
252
252
 
253
253
  貴重な情報ありがとうございます。
254
254
 
255
- セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわかrかりません。ただ、これを機に多少とも勉強させていただきます。
255
+ セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわかりません。ただ、これを機に多少とも勉強させていただきます。
256
256
 
257
257
 
258
258
 
@@ -298,7 +298,7 @@
298
298
 
299
299
 
300
300
 
301
- 試しに、これを削除して、JavascriptやREST ClientツールでGETしてみると、見事にエラーになります。
301
+ 試しに、これを削除して、JavascriptやREST ClientツールでPOSTしてみると、見事にエラーになります。
302
302
 
303
303
  ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
304
304
 

7

補足内容をさらに追加

2015/10/14 10:25

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -239,3 +239,85 @@
239
239
  }}
240
240
 
241
241
  ---------------------------------------------------------------------
242
+
243
+ ---
244
+
245
+ ###[その後の調査]
246
+
247
+
248
+
249
+ eripong さん
250
+
251
+
252
+
253
+ 貴重な情報ありがとうございます。
254
+
255
+ セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわかrかりません。ただ、これを機に多少とも勉強させていただきます。
256
+
257
+
258
+
259
+ 最低限の私の知識で理解できる範囲で、以下いろいろやってみました。
260
+
261
+
262
+
263
+ ■まず、cookieless の設定による実行結果です。(○がPOST成功)
264
+
265
+ × UseUri
266
+
267
+ ○ UseCookies
268
+
269
+ × AutoDetect
270
+
271
+ ○ UseDeviceProfile
272
+
273
+
274
+
275
+ おっしゃるように、UseCookiesだとうまくいくようで、UseDeviceProfileでも大丈夫みたいです。
276
+
277
+
278
+
279
+ つまり、設定としては、
280
+
281
+ - <sessionState mode="Off" />
282
+
283
+ - <sessionState cookieless="UseCookies"/>
284
+
285
+ - <sessionState cookieless="UseDeviceProfile"/>
286
+
287
+ のいずれかだとうまくいくということになります。
288
+
289
+
290
+
291
+
292
+
293
+ ■次に、Chromeのクッキーの状態を見てみました。
294
+
295
+ ![イメージ説明](610cb19cc05811113ec4cda8074525ce.jpeg)
296
+
297
+ AspxAutoDetectCookieSupportの値が1として保存されているようです。
298
+
299
+
300
+
301
+ 試しに、これを削除して、JavascriptやREST ClientツールでGETしてみると、見事にエラーになります。
302
+
303
+ ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
304
+
305
+
306
+
307
+ ■REST Client でのPOST実行結果
308
+
309
+ 各処理のリクエストの内容を細かく調べる方法がわからないので、とりあえず情報として載せておきます。
310
+
311
+
312
+
313
+ 以下は、REST Client でPOSTに失敗した時の状況です。
314
+
315
+ ![イメージ説明](ec24d599550c1b4df164ada41a965364.jpeg)
316
+
317
+ POST時に、AspxAutoDetectCookieSupport=1にリダイレクトしてるということでしょうか。その結果「405 Method Not Allowed」が返されています。そして、その後、GETしようとしてエラー返されているようです。
318
+
319
+
320
+
321
+ 最後に、REST Client でPOSTに成功した時の状況です。
322
+
323
+ ![イメージ説明](7f355c63f813050726d651effbc5a9d3.jpeg)

6

補足の追加

2015/10/14 08:59

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -220,7 +220,7 @@
220
220
 
221
221
 
222
222
 
223
- 戻り値の内容を一部抜粋
223
+ 1行目POST時の戻り値の内容を一部抜粋
224
224
 
225
225
  ---------------------------------------------------------------------
226
226
 

5

補足を一部修正

2015/10/13 04:10

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -208,4 +208,34 @@
208
208
 
209
209
  ---------------------------------------------------------------------
210
210
 
211
- ぜか POSしてGETしてるよな動きになってるみです
211
+ 上記ログ(うまくいかない)とソースの対応を調べですが、
212
+
213
+ 1行目: var response = await httpClient.PostAsync(url, content); → POST
214
+
215
+ 2行目: String text = await response.Content.ReadAsStringAsync(); → GET
216
+
217
+ ということでした。
218
+
219
+ 1行目の処理で、エラーが帰りそのため2行目のGETがうまくいかないということのようです。
220
+
221
+
222
+
223
+ 戻り値の内容を一部抜粋
224
+
225
+ ---------------------------------------------------------------------
226
+
227
+ IsSuccessStatusCode: false
228
+
229
+ ReasonPhrase: "Method Not Allowed"
230
+
231
+ RequestMessage: {Method: POST, RequestUri: 'http://localhost:12345/api/GateApi/TestPost/?AspxAutoDetectCookieSupport=1', Version: 1.1, Content: System.Net.Http.FormUrlEncodedContent, Headers:
232
+
233
+ {
234
+
235
+ Content-Type: application/x-www-form-urlencoded
236
+
237
+ Content-Length: 10
238
+
239
+ }}
240
+
241
+ ---------------------------------------------------------------------

4

修正依頼があったため

2015/10/13 04:05

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -187,3 +187,25 @@
187
187
  ###補足情報
188
188
 
189
189
  サーバー側もクライアント側も、.NETのバージョンは 4.5.1
190
+
191
+
192
+
193
+ IISのログの抜粋です
194
+
195
+ ---------------------------------------------------------------------
196
+
197
+ ■うまくいくとき → ChromeのRest Client で呼び出し
198
+
199
+ 2015-10-13 03:06:50 ::1 POST /api/GateApi/TestPost - 12345 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/45.0.2454.101+Safari/537.36 - 200 0 0 2620
200
+
201
+
202
+
203
+ ■うまくいかないとき → WindowsForm で呼び出し
204
+
205
+ 2015-10-13 03:09:21 ::1 POST /api/GateApi/TestPost/ - 12345 - ::1 - - 302 0 0 13
206
+
207
+ 2015-10-13 03:09:21 ::1 GET /api/GateApi/TestPost/ AspxAutoDetectCookieSupport=1 53903 - ::1 - - 405 0 0 266
208
+
209
+ ---------------------------------------------------------------------
210
+
211
+ なぜか POSしてGETしているような動きになってるみたいです。

3

間違ったソースコードをコピーしてしまいました

2015/10/13 03:33

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -98,6 +98,16 @@
98
98
 
99
99
  {
100
100
 
101
+ PostWebPageAsync();
102
+
103
+ }
104
+
105
+
106
+
107
+ private async void PostWebPageAsync()
108
+
109
+ {
110
+
101
111
  this.label1.Text = "Post取得中";
102
112
 
103
113
 

2

説明不足と思われる個所に文章を追加

2015/10/13 00:20

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  ```
54
54
 
55
- 試しに、以下のJavascriptでPOSTしてみましたが、これは正常に処理されます。
55
+ 試しに、同じサイト内のページに埋め込んだ、以下のJavascriptでPOSTしてみましたが、これは正常に処理されます。
56
56
 
57
57
  値も正常に渡るし、戻り値も返っています。
58
58
 

1

補足情報を訂正

2015/10/10 23:33

投稿

skippanther
skippanther

スコア13

test CHANGED
File without changes
test CHANGED
@@ -176,4 +176,4 @@
176
176
 
177
177
  ###補足情報
178
178
 
179
- .NETのバージョンは 4.5.1
179
+ サーバー側もクライアント側も、.NETのバージョンは 4.5.1