ともち屋

リスの写真とか、技術メモとか。

ASP.NET勉強会メモ

ASP.NETの某勉強会に出たので手元のメモを書き書き。

IISアプリケーションプールの統合パイプラインモード

IISASP.NETのパイプラインを1つとして扱えるようになった。
昔に作成した片方のパイプラインを専用で使わなければならないようなアプリは動かない可能性がある。

IISアプリケーションプール詳細設定

32bitアプリケーション有効化

サードパーティ製の32bitコンポーネント使うアプリケーションは
これをtrueにすればWowを使って32bit動作してくれる。

アプリケーションIDのビルトインアカウント

サービスで使用される「System」「Local Service」「Network Service」アカウントとは? − @IT

現在の推奨はApplicationPoolIdentity

カスタムアカウントで特定ユーザーの権限を与えることもできる。

ping応答最大時間

デフォ90秒。応答しないのが値を超えるとプロセスが強制的にリサイクルされる。

ワーカープロセス最大数

増やすとウェブガーデンになる。マルチプロセスで動作する。
(最近は仮想化が主流なので、使わないことが殆ど)

リサイクル

時間、メモリ制限でワーカープロセスをリサイクルできる。
予期せぬリサイクルには注意。
⇒セッションいきなり切れたりする。

IIS-サイトの設定

認証

windows認証(IEのみサポート)
ASP.NET偽装(windows認証で入ったアカウントの権限で実行できる)

アプリケーションプール

増やしすぎるとメモリがやばい。
ワーカープロセス増やすより多くメモリを確保する

web.configでユーザの操作を制御する

特定ディレクトリのみ匿名ユーザ拒否したい

例:MemberAreaというディレクトリ内のページはログインしてないと閲覧付加

<location path="MemberArea"><!--ディレクトリのパス-->
     <system.web>
       <authorization>
         <deny users="?"/><!--匿名ユーザを拒否する-->
       </authorization>
     </system.web>
  </location>
windows認証を使いたい
    <authentication mode="Windows">
    </authentication>
ログインのリダイレクト先を指定
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880"></forms>
    </authentication>
特定のユーザのみにアクセス許可する
 	<system.web>
       <authorization>
         <deny users="?"/><!--匿名ユーザを拒否する-->
         <allow users="Training,hoge"/><!--特定ユーザーのみ-->
         <deny users="*"/><!--それ以外を拒否-->
       </authorization>
     </system.web>