JavaScript から (ASP.Net AJAX を使用して) 呼び出される .net asmx Web サービスがあり、Session へのアクセスが必要です。
[WebMethod(true)]
public string DoSomethingOnTheServer() { }
読み取り/書き込み要求でセッションがロックされるという問題が発生しています。セッションへの読み取り専用アクセスを必要とする Web サービス メソッドをマークする方法はありますか?
ありがとう!
JavaScript から (ASP.Net AJAX を使用して) 呼び出される .net asmx Web サービスがあり、Session へのアクセスが必要です。
[WebMethod(true)]
public string DoSomethingOnTheServer() { }
読み取り/書き込み要求でセッションがロックされるという問題が発生しています。セッションへの読み取り専用アクセスを必要とする Web サービス メソッドをマークする方法はありますか?
ありがとう!
このhttp://msdn.microsoft.com/en-us/library/aa480509.aspxページは、答えが「いいえ」であることを示唆しているようですEnableSessionState=ReadOnly
。
同じプロセスから同時に Web サービス呼び出しを行っている場合、要求はサーバーでシリアル化されるため、一度に 1 つのみが実行されます。複数の要求の同時処理を可能にする HttpSessionState オブジェクトへの読み取り専用アクセスをサポートする .ASPX ページとは異なり、ASP.NET Web サービスにはそのような機能はありません。セッションが有効になっているすべての Web メソッド呼び出しには、読み取り/書き込みアクセスがあり、各セッション内でシリアル化されます。
警告: この記事は古いものです (2002 年)。
WebMethod属性のMSDNドキュメントによると、いくつかの可能なプロパティがあるため、WebMethod属性の「真」の値が何をするのかわかりません。
やってみました:
[WebMethod(EnableSession=true)]
このドキュメントによると、セッションへのフルアクセスが可能になります。