2017年11月12日日曜日

ASP.NET Coreでiisresetでもセッションを維持する件

Redisを使えば大丈夫だと思ったけど、ダメだったので調べたことのメモ

ポイント

- dotnet.exe単体動作ではRedisのみでOK
- iisのバックエンドの場合はiisresetでセッションが吹っ飛ぶ
- セッションidとredisのキーを紐付ける設定がiisの場合、都度変わるぽい

Startup.csのConfigureServices関数にて

var redis = StackExchange.Redis.ConnectionMultiplexer.Connect(Configuration.GetConnectionString("RedisConnection"));
services.AddSingleton(options => redis.GetDatabase());
services.AddDataProtection().PersistKeysToRedis(redis, "DataProtection-Keys");

的な記述を追加する。
これによって、dotnet core on iis でもiisresetでセッションが飛ばないようになるぽい。

ちなみに、キーとなるAddDataProtection()ミドルウェアだが、

Microsoft.AspNetCore.DataProtection.Redis アセンブリが必要になるため、Nugetで事前にインストールが必要である。


2017年5月17日水曜日

自分用メモ:yeoman-generatorの実体の場所

/usr/local/lib/node_modules/generator_***にある模様。
探すのに時間がかかったのでメモ

2017年4月24日月曜日

新しいdotnetコマンドで自己展開型(self contained)なバイナリを生成するには

VS.NET 2017系になって、Dotnet coreがproject.jsonからcsprojになりました。

以前は、project.jsonで自己展開型(.exeにビルドするやつ)にビルドするには、
project.jsonに、以下のようにruntimesセクションを追加して

"runtimes": {
  "win10-x64": {}
  "osx.10.10-x64: {}
}

dotnet build -r win10-x64

などとコマンドラインで叩くと-r(runtimes)オプションで指定した環境向けに単独で実行できるバイナリが生成されます。

VS.NET 2017では、project.jsonが廃止されて*.csprojになってしまったので、自己展開型のバイナリ生成が上記のやり方ではできなくなってしまいました。

VS.NET 2017のプロジェクトのプロパティからも設定できなかったが、csprojを直接編集することでできる模様。

<PropertyGroup>
  <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
  <RuntimeIdentifiers>osx.10.10-x64</RuntimeIdentifiers>
</PropertyGroup>

上記のようにした上で、

dotnet build -r win10-x64
dotnet build -r osx.10.10-x64

とコマンドラインで叩くと、指定した環境向けの実行バイナリが生成される。

参考: https://docs.microsoft.com/ja-jp/dotnet/articles/core/deploying/

どっちにしてもVS.NET上で指定はできないみたい。
→とわいえ、VS.NET 2017からDotnet Coreサポートは大分良くなったよ!!

2017年1月12日木曜日

マルチモニタをやめてみた

クラムシェルをやってみたくて一時的にマルチモニタをやめてみたら意外に作業が捗る事がわかった

理由を考えたところ作業スペースが有効に使え、マルチモニタのときは狭くて使って無かった紙とペンを使うようになったことと、何より集中力が上がった気がする。
目の前に余計な物がないのが良いみたいだ。
マルチモニタと作業効率でググると良いことしか書いてないページばかり引っ掛かるが、シングルモニタと集中力でググると真逆のことが書かれていて面白い。
マルチモニタ派の人は作業効率おしだがシングル派はかつてマルチモニタを使っていた人ばかりというのがより説得力がある。

結局は人それぞれなのかもしれないが、試しに片方のモニタの電源オフしてみるのも良いかも知れない

2017年1月11日水曜日

Anguler2@Windows with Webpackでエラーが発生する件について

Angular2をWindows環境で実行しようと、http://blog.stevensanderson.com/2016/10/04/angular2-template-for-visual-studio/からひっぱてきたテンプレートを使って動かそうとした際、
node_module/to-string-loader/src/to-string.jsの16行目でjavascriptのヒアドキュメントがILLEGALなsyntaxというエラーが発生してえらく難儀したのでメモしておく。

結論から言うと、node.jsのバージョンが 0.10.xxx で古かったらしく最新バージョンにアップしたら問題なく動作した。
最新版はここを参考に引っ張ってきた。※既にnode.jsにパスが通っている環境の場合、既存のパスの方が優先されたのでパスの調整が必要でした。

また、TypeScriptのバージョンもアップ(1.5.4→2.14)した。

普段はVisual Studio.Codeを使っているが、たまにVisual Studio.NETを使うのも良い気がした。

追記:
ここに既出ですね。→node.js 4.X以上じゃないとダメみたいですね。