0

C# で ASP.NET Web ページを作成しています。Web ページが短時間放置されると、ページが WebMethod を呼び出そうとするたびに 401 Unauthorized Errors が発生し始めることがわかりました。これはおそらくセッションのタイムアウトが原因だと思います。

ユーザーが最初にこのページにアクセスしたとき、バックエンド キャッシングを実行し、セッションを使用して追跡している短い時間だけ、セッションを使用します。その時点で、ページは更新のためにバックエンドに継続的にヒットし、セッションが更新されます。これが完了すると、セッション状態はもう必要ありません。

セッション状態を必要とせずに動作する WebMethod を持つことは可能ですが、存在する場合はそれを見つけてアクセスできますか? または、WebMethod が呼び出されたときに空のセッションが自動的に作成された場合、これも問題ありません。

ありがとう!

4

2 に答える 2

1

私の理解が正しければ、Web サービスをサブフォルダーに配置し、匿名ユーザーを許可するように構成する必要があります。

典型的なルート web.config は次のようになります。

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login.aspx" timeout="2880">
  </forms>
</authentication>
<authorization>
  <deny users="*"/>
</authorization>

サブフォルダーで、新しい web.config ファイルを作成し、承認設定をオーバーライドします。

<?xml version="1.0"?>
<configuration>
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
</configuration>
于 2012-07-19T05:58:23.927 に答える
1

@Jupaol によって与えられた ans とは別に、 このようなもので要素の要素を
簡単に使用できますLocationweb config

<configuration>
   <location path="Url_To_WebMethod">
      <system.web>
         <authorization>
            <allow users="*"/>
         </authorization>
      </system.web>
   </location>
</configuration>

これにより、Web メソッドから認証の必要がなくなり、何も要求せずに使用できるようになります。auth cookie

于 2012-07-19T06:03:22.273 に答える