簡単ですね!node.exeのパスを変えたい場合は、install.batの確認場所の変更と、web.configでnodeProcessCommandLine指定でどーぞー。6000req/sec。iisnode.dllがちょいちょい落ちる(アプリケーションプールごと道連れ)。ネイティブモジュールのスゴさを垣間見れるし、手軽にnode.jsをWindows環境で走らせることが出来ていいです!ちなみにハンセルマンさんのエントリでも書いてる通り、AppPoolのアカウントをLocalSystemにしとかないと動きません。あと、wcatのsettings.ubrはちゃんとsettings{}で囲んでおきましょう。wcatについてはよく知りませんが(すません)、wcclientが動いてくれなくて、ちゃんと走りませんでした(手動起動で動かした)。ブチザッキカメさんのこのエントリーに対してこんなコメントをしてみたわけですが、具体的なコードを提示しないで案だけ出すって、そんな失礼なことがあっちゃいけねー。江戸っ子なら宵越しの銭はもってちゃいけねー。江戸っ子じゃないんですけどね。カメさんのコードをいただきつつ。MVC3のサイトをデフォルトで作成。ProvidersをNuGetでインストール。web.configでSessionStateの設定をCookieless="UseUri"とTimeout="1"に変更(検証が簡単だからね)。}}ずるくないもん!オマージュだもん!コレとMVCサイトで実行した結果(クリックでズーム)。セッションを生成するコンソールは3個でCPUはMAX。白行はエラーなく進んだところで、赤行はASP.NET側でエラーになったところ。1分でセッションは切れるので、1分後からドカドカ古いセッションの削除が始まります。概ね680セッションあたりで飽和。エラーと正常実行を繰り返す感じです。セッションの削除が同時実行されててんやわんやな例外。これを解消するために、InitializeRequestをoverrideしたSessionStateProviderクラスを定義します。やることはSessionsテーブルにExpires列のインデックスがなければ作成と、セッション初期化時の有効期限切れセッションの削除をEFのDeleteObjectじゃなくSQLのDelete文を実行するように。/></providers></sessionState>Web.configも上記のように変更しちゃいましょう!customProviderの指定がDefaultSessionProviderでオリジナルに戻ります。セッションが飽和するのが、940件くらいのところです。例外なんて起きませんよ。有効期限切れのレコード削除なんて何回実行したって、無いものはない!潔し!ちなみに先程の数値もそうですけど、コレが同時実行の限界値なわけではないです。マイノートPCの同時実行の限界くらいです。DbProviderFactoriesを利用することでEFと同じだけのポータビリティ(言い過ぎ)。名前ほど早くないけど、エラーが起きないから実用的なんじゃん?読み込み性能は気にしてないでーす。新規セッション作成時のパフォーマンス向上委員会です。言い訳がましい...。ご利用は計画的に!Azureでは動かしてないので、そちらの検証はたぶんカメさんがその3でやってくれるんじゃないでしょーか。コントローラクラスを、コントローラ名から取得したいのだけれど...結局、ぜんぶ列挙!?前回のエントリーからはや1ヶ月以上経過したこのブログ。エアコンが壊れてて、バリバリ節電に貢献できてる気はするけど、辛い毎日でブログどころではないですよ!で、坂本さん、上記の件ですが以下のような方法はいかがでしょうか。単純に型が欲しいだけならインスタンスは不要なので無駄な感じはしなくもないですが。必要なのがインスタンスであれば一番いい方法だと思います。controller.GetType();factory.ReleaseController(controller);コレと言って、自信で発明したものはなく、やってることはMvcHandlerでやってることと同じです。MvcHandlerってあれです、MvcRouteHandlerが返してくるIHttpHandlerのことです。内部でタイプキャッシュとかしてくれてるので、パフォーマンスには自信があります!あると思います!ここから別件。暑さで脳みそが働かない...。これだけじゃ坂本さんも納得しないと思うので、全然関係ない面白い機能紹介。AgentがCookieに対応してないと言ってくるじゃないですか。browserファイルで対応するのが王道ですが、それだと追従していくのが大変面倒くさい。Site想定している状況を簡単にいうと、SessionのcookielessはuseDeviceProfile。PCサイトとケータイサイトを同一アプリケーションで実行。PCサイトは積極的にOutputCacheを利用し、ケータイサイトでは消極的(Viewでは使わない)に利用。この場合、PCサイトにクローラが来るとそのままではCookielessとしてセッションが生成されるので、OutputCacheにSessionIDを保持したHTMLが出力されてしまって都合悪い!ということなんですが、伝わるでしょうか...。OutputCacheをVaryByUserAgentにするのも手ですね。IDが含まれてたら消してしまうという方法。2.0の出力書き換えを利用するっていう方法。Rule用に独自Provider書いたりもできるけど、そこまでやることはあんまりないかなー、と思いますがどうでしょう。/>だいたいこんな感じの設定です。これをWeb.configに書いておきましょう。system.webServer配下です。ケータイサイトが/mobile配下という前提です。MVCサイトをデフォルトのまま生成し、Web.configに上記設定を追加しないで動作を確認。この状態で出力されるのは↓。