archive: 2019年09月  1/1

Laravel 6.0.3 で Call to undefined method setFormatter() のエラー

2019/10/4追記、Issue送ったらLaravel 6.1.0で修正されました。バージョンアップでOKです(^-^)今月頭に新しい長期サポート版 (LTS) となるLaravel 6.0がリリースされたわけだが、やったー!LTSだー!と飛びついたら一個だけバグっぽい現象に遭遇したので対処法書いとく。発生したのはバージョン6.0.3。現象としては、Laravel 6.0にアップグレードした後に、次のような例外が発生するというもの(以下エラーログから抜粋)。[2019-0...

ASP.NET CoreでAPIテスト (統合テスト) を行う

またASP.NET Coreネタ。今度はASP.NET Coreの自動テストで、APIレベルのテスト (統合テスト, Integration tests) を行う方法について。バージョンは引き続き2.1。統合テストの方法については、公式ドキュメントにも以下のように説明がある。ASP.NET Core MVC アプリのテストASP.NET Core での統合テストが、いろいろ説明が冗長だったり、かと思えば足りなかったりと、最初にこれだけ見ても正直分かり辛い。なので、実際に統合テス...

Serilogでログを種類ごとに別のファイルに出力する

ASP.NET Coreネタ。ASP.NET Coreでは標準のロガーがあるが、そのままだとファイル出力ができないらしく、別途ライブラリを組み合わせるのが定番らしい(?)。で、有名どころの「Serilog」を使ったのだが、ログを種類別に違うファイルに出力しようとしたら、ちょっと手間取ったので方法を書いておく。例によってStack Overflow等を参考にした。Stack Overflow - Filter Serilog logs to different sinks depending on context sour...

ASP.NET CoreでDIを半自動化する「Scrutor」

引き続きASP.NET Coreネタ。ASP.NET Coreは標準でDIに対応しているのだが、標準のモノは何故か手動での依存関係登録が必須という面倒くさい仕組みになっている。が、これを半分自動化して、クラス名やらのルールに基づいて一括制御できる「Scrutor」というライブラリがあったので、それを紹介する。(実は公式ドキュメントの端っこでも少し紹介されてはいるのだが、自分は最初全然見つけられなかったので。)まず、見つけた中で一...

ASP.NET Core IdentityテーブルのIndex column size too largeの対処

ASP.NET Coreネタ二個目。ASP.NET Core標準のユーザー認証(?)のASP.NET Core Identityは、勝手にユーザーテーブルとか作ってくれるわけだが、ちょっと古いMySQLのutf8mb4データベースだと、自動生成されるテーブル定義が有名な「Index column size too large. The maximum column size is 767 bytes.」に引っかかってしまってマイグレーションエラーになる。一応解説すると、この問題はMySQL (InnoDB) のインデックスが貼れる列...

ASP.NET CoreでHttpRequest/HttpResponseのBodyを参照する

ここ最近、他所のプロジェクトのヘルプでASP.NET Coreを触ってたのだけど、何点かハマったところがあって、かつ日本語の情報が無い(?)のもあったのでそういうのメモっとく。なおバージョンは2.1。初めはコンテンツボディの取得法について。例えば詳細なアクセスログでリクエスト/レスポンスのボディまで出力したい、ってことはちょくちょくあると思う。で、今回もそれやろうとしたのだけれど、デフォルトでは(たぶん性能対策...