IIS
ASP.NET Core のプロジェクトを dotnet publish を使って発行すると自動的に web.config が作られるようになっています。基本的に IIS や App Service でホストする場合には必須です。自動生成されるので IIS 周りのカスタマイズが難しそうに見えますが、比…
ASP.NET Core 2.2 から使えるようになった ANCM V2 の In-Process Hosting はパフォーマンス面で有利なので使っていきたいし、そもそもデフォルトは InProcess になっているので勝手に使っていると思うのですが、タイトルの通りの制約があるので注意です。In…
リバースプロキシやロードバランサーで SSL offload を行った場合には、後ろにいる Web サーバーにクライアントの IP などを伝えるために X-Forwarded-* を付けますが、ASP.NET は上手く扱ってくれません。X-Forwarded-For に関しては ARR Helper を入れるこ…
ちょっと前に書いた Microsoft 公式の Brotli が使えるモジュールですが、いつの間にかにちゃんとインストーラとドキュメントが公開されていました。これで 1803 以降の IIS では簡単に Brotli が使えます。最近の IIS に対する動きは、割と歓迎したい流れで…
Twitter を見てると IIS 向けに Microsoft 公式で Brotli が使えるモジュールが GitHub でリリースされていたので、さっそく飛びついてみました。まだソースコードでの公開なのでビルドする必要がありますが、インストーラーで配布されるでしょう。Brotli an…
前から Linux の VPS は主に Docker 用として契約して使ってましたが、Windows Server にも対応したと聞いたので早速契約してみることにしました。10% オフになっても 2GB プランはまあまあのお値段という感じがします。みんなお待たせっ!ついにConoHaでもW…
Windows Server 2016 へのアップグレードが行われた際に、一部のリージョンでテスト的に有効化されていた HTTP/2 がグローバルで GA になってました。例によって ASE にはまだデプロイされていないみたいですが、近いうちに対応するみたいです。HTTP/2 はデ…
ASP.NET Core 2.1 で入った Cookie Policy が面白かったのと、ASP.NET というか IIS でも HttpModule を使うことで対応出来そうだったので実装して試すことにしました。行うことは非常に単純なので、HttpModule を書いたことがあれば大体は想像がつくはずで…
以前に Windows 10 というか IIS 10 に対応した ARR Helper が ARR 3.0 に含まれていると書きました。実際にレジストリを弄るハックをしなくてもすんなりとインストールは出来ますが、タイトルの通り思った通りに動かなかったのでメモとして残します。地味に…
スケジュールが遅れていた気がする .NET Core 2.1 / ASP.NET Core 2.1 ですが、Scott Hunter が Channel 9 の動画付きでブログを公開してました。昔は ASP.NET の担当だった気がしましたが、今は .NET 全体の Director だったのですね。People have been ask…
割と旬を逃した感じはしますが、IIS 側で CORS の設定を行える拡張モジュールがリリースされています。もっと早くリリースされていれば、苦労しなかったシーンが個人的にちらほら。これまでは URL Rewrite で頑張ってた人も多いのではないでしょうか。インス…
ARR Helper 使ってますか?私は ARR を使っている時だけではなく、前に X-Forwarded-For を付けるリバースプロキシが居るときには、ARR Helper を使うようにしています。知らない人は前に書いたエントリを読んでみてください。良さが分かるはずです。リバー…
デフォルトのまま Outbound Rule と gzip 圧縮を有効にしようとしてエラーになったことがある人は多そうです。もはや都市伝説的な感じすらしますが、適切に設定を行えば共存は可能です。当時は IIS 開発チームだった Ruslan 氏が IIS Forums 回答しています…
前に Windows Containers を使って IIS を立ち上げた時、コンテナホストから localhost でコンテナで動作しているはずの IIS を確認しようとしても出来なかったのですが、理由が分かったので書きます。ちなみに Docker と Windows Containers については前の…
Windows Server 2016 が MSDN からダウンロード出来るようになっていたので、Service Fabric Cluster 用に買った Intel NUC にインストールしてみました。Hyper-V 上に入れた 2016 で Windows Containers を試したとき、1 日経ってもコンテナが起動しなかっ…
ぼちぼち改善している IIS Express で URL Rewrite のテストを書くパッケージですが、設定周りに柔軟性が無くかなりイマイチだと思っていたので XML Document Transform を使って改善しました。NuGet に公開している最新版では XDT が使えるようになっていま…
これまで Umbraco で管理してた shibayan.jp を、もっと軽量で書きやすい Flat-file CMS である Grav に移行するために、Visual Studio Code と IIS Express で快適にローカルで確認できる環境を作ろうと思いました。少し前まではこういう場合 WebMatrix を…
久し振りに iislua に機能を追加しようと思ったので、IIS のログを書き換える方法を調べて試しました。新しい項目を追加することは出来ないみたいですが、既存の項目であれば書き換え可能みたいです。CHttpModule には OnLogRequest というメソッドがあるの…
前回作った IIS Express TestKit が Inbound の一部にしか対応出来ていなかったので、少し気合を入れて利用範囲を広げる対応を行いました。はいふりが始まる前だったので少し急ぎました。タイトルにも書いたように Outbound Rules に対するテストが書けるよ…
ASP.NET というか IIS を使ってアプリケーション開発を行っている場合、一度はお世話になっていると思う URL Rewrite ですが、割と書き方が難しいです。IIS Manager にパターンのテストツールはありますが、大した機能は持ってません。パターンをテストした…
ASP.NET Core は元々 Helios で動かす予定だったのが、サーバーが Kestrel への 1 本化に伴い IIS 向けには HttpPlatformHandler が採用されてきましたが、少し前に HttpPlatformHandler から fork した ASP.NET Core Module が使われることになりました。公…
以前に bzip2 の圧縮を行うモジュールを IIS に向けに作ったので、何となく Brotli で圧縮するモジュールも作ってみました。ちなみに Brotli は Google が開発した新しい圧縮形式です。IIS は圧縮形式をネイティブな DLL で拡張可能に作られているので、Brot…
Web PI を起動した時に HttpPlatformHandler がアップデートされていたことに気が付きました。インストールしてバージョンを確認したところ 7.1.1959.0 になっていました。前回のアップデートで調べた時にはバージョン 7.1.1954.0 だったので、少しだけビル…
ASP.NET 5 beta8 のリリース前に、割と大きな変更が入りました。IIS (Helios) の削除です。ちゃんと削除する理由が挙げられているので、適当に意訳して紹介します。 Helios 自体が DNX の役割を担ってしまっている WebListener や Kestrel などと異なり、Hos…
IIS 公式サイトの Community Contributed Download に iislua を申請してから 1 月以上かかりましたが、昨日ようやく公開されました。基本的には GitHub へのリンクとなっています。審査をしていたのかはわかりませんが、かなり時間かかりました。今は一覧の…
Apache の mod_rewrite なら環境変数の値を使って条件が書けるのに、IIS の URL Rewrite ではサーバー変数の値しか使えなかったので、プロバイダーを書いて実現してみました。ちなみに mod_rewrite なら以下のように書けます。 RewriteEngine On RewriteCond…
URL Rewrite 2.0 や ARR 3.0 が Windows Server Technical Preview 2 の IIS 10.0 へのインストールに対応したので、今更ながらインストールして遊んでみました。ARR などのアップデートに関しては以下の記事で紹介しています。Windows Server TP 2 の IIS 1…
IIS ネイティブ HTTP モジュールは設定を Web.config から読み込むのが一般的ですが、どうやって読み込むのか分からなかったので調べました。ネイティブ HTTP モジュールの作り方は以前に書いた通りです。IIS で使えるネイティブ HTTP モジュールの作り方 - …
Apache と nginx では Lua を使って HTTP リクエストに対して処理を書けるのが羨ましかったので、IIS でも lua-nginx-module のような処理が書ける HTTP モジュールを実装しました。要するにパクリです。バイナリの配布はしていないので、ソースコードからの…
最近は IIS の拡張機能について調べていたので、今回は C++ を使って HTTP モジュールを作ってみました。IIS のネイティブ HTTP モジュールはちゃんと実装手順が決まっています。まずは最初に流れを簡単に紹介しておきます。 CHttpModule を継承したクラスを…