.netcoreプロジェクトでIStartupFilterを使用するためのチュートリアル
背景
netcoreプロジェクトのサービスの中には、orleansコンポーネントのようなミドルウェアを介して通信を行うものがあります。その内部ではサービスとクライアントがゲートウェイとポートを指定するので、クライアントを外部に開放し、サーバー側でポートを閉じればいいだけです。これはホストを削除することと同じで、コネクションやポートの指定が不要になり、非常に便利に使えるようになります。
ホストをなくすには、以下のコードを実行します。
{{コード
net5でコメントアウトされているコードは、私たちがオフにしたサービスで、純粋なコンソールとして実行されます。
しかし、スタートアップはミドルウェアなどのコードで指定する必要があるので、スタートアップファイルを殺すのは都合が悪い。ドキュメントを探すと、Configureブロックの代わりに、IStartupFilterでこの機能の一部を実装できることがわかりました。
[email protected]:~/workbook/jz2440/system/linux-2.6.22.6$ make menuconfig
Makefile:416: *** mixed implicit and normal rules: deprecated syntax
Makefile:1449: *** mixed implicit and normal rules: deprecated syntax
make: *** No rule to make target 'menuconfig'. Stop.
File: Makefile
416 config %config: scripts_basic outputmakefile FORCE
417 $(Q)mkdir -p include/linux include/config
418 $(Q)$(MAKE) $(build)=scripts/kconfig $@
...
1448 # Modules
1449 / %/: prepare scripts FORCE
1450 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1451 $(build)=$(build-dir)
1452 %.ko: prepare scripts FORCE
1453 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
1454 $(build)=$(build-dir) $(@:.ko=.o)
1455 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
...
IStartupFilter インターフェースには、1 つのメソッド "Action" しかありません。 {アプリケーションビルダー 構成(Action {アプリケーションビルダー 次)」を実装し、コンテナにインジェクトするだけです。
{コード
linux-2.6.22.6$make menuconfig
Makefile:416:*** mixed implicit and normal rules: deprecated syntax
Makefile:1449:*** mixed implicit and normal rules: deprecated syntax
make:*** No rule to make target 'menuconfig'. Stop.
しかし、新たな問題が出てきました。MyStartupFilterにプログラムが全く実行されないことがわかりました、なぜでしょうか?ソースコードを見てみると、IStartupFilterのインターフェースの実装は、webhostの
ということで、Hostしか指定できない。そして、メソッドはStartupファイルを指定する必要があります。これでは、せっかく効率化したいのに、マイクロソフトの設計で、堂々巡りになってしまいます。
画像
/pnet6のプログラムはかなり変わっていて、WebApplicationから始まります。ConfigureWebHostDefaultsの呼び出しはbootstrapHostBuilderで指定します.
net6はスタートアップファイルを効率化できますが、そのスタートアップはウェブホストに直接拘束され、net5と比較してホストさえも省略することができません。
原点に立ち返り、そのソースコードを勉強したわけではないので、理解できるのはこれだけです。最後の2つの質問です。1.net6はホストなしで実行できるのか、2.IStartupFilterとStartupはホストを分離して束縛しないようにできるのか、です。
netcoreプロジェクトにおけるIStartupFilterの使用については、この記事がすべてです。netcoreにおけるIStartupFilterの使い方については、BinaryDevelopの過去記事を検索するか、引き続き以下の関連記事を参照してください。
関連
-
pythonでpillowをインストールする3つの方法
-
.NET 6:.NETのロギングコンポーネントlog4netを使用する。
-
NETガベージコレクション GC診断ツール dotnet-gcmon 使用方法
-
ASP.NET CoreでURLを設定する5つの方法
-
net core downlink tracking skywalking インストールと使いやすいチュートリアル
-
swagger uiをasp.net coreに統合する原理
-
認証プロセスの記録にjwtを使用したネット
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
asp.net core3.1 cookieとjwtのハイブリッド認証による多様な認証ソリューションの実現
-
非同期タスクキャンセルと監視のネット実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET6新機能 - 暗黙の名前空間参照
-
.NET Coreでオブジェクトプールを使用する
-
NET6新機能 新構造体の最適化
-
30分でわかるコング経由の.NETゲートウェイ
-
ASP.NET Coreミドルウェアによるグローバル例外処理機構の利用について
-
Net Core HttpClient処理 レスポンス圧縮の詳細
-
.NET 6における暗黙の名前空間参照
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
CS0234 名前空間 'Microsoft.AspNet' に型または名前空間名 'Mvc' が存在しない (あなたは
-
ASP.NETのオンライン統計とアプリケーションとセッションを使用した訪問履歴