Skip to content

OTR_FAQOther

nishi_74322014 edited this page Oct 27, 2026 · 1 revision

FAQ - その他

概要

ASP.NET の構成、ログ出力、リッチクライアント、通信制御などの FAQ。

詳細

ASP.NET

Q. web.config・app.config の変更はいつ反映されるか?

  • web.config を変更すると、アプリケーション・プールが自動で再起動し、直ちに反映される。
  • それ以外の設定ファイルの変更では再起動しないので、手動で再起動する。
  • net10.0 の appsettings.json も、Open 棟梁の設定(Fx*)は起動時に読む前提なので、再起動で反映する(外部パラメタ(構成))。

Q. テンプレートの sessionState mode の既定が StateServer なのはなぜか?

StateServer・SQL Server モードでは、Session に格納するオブジェクトが [Serializable] である必要がある。
InProc で開発を進めると、直列化できないオブジェクトを Session に入れてしまい、運用中に切り替えられなくなる。
そのため、テンプレートの既定を StateServer にしている。クラスタリングが必要になり得ないと言い切れるなら、InProc に変えてもよい。

Q. Forms 認証で、ログイン前に JS ファイルなどを参照できない。

web.config に、該当パスへの匿名アクセスを許可する <location> を追加する。

Q. 予期せぬ Session タイムアウトが発生する。

IIS は、ワーカー・プロセスのアイドルが続くと自動でシャットダウンする(既定 20 分)。その際 Session の状態(InProc)が失われる。
アプリケーション・プールのアイドル・タイムアウトを Session のタイムアウト以上にする(タイムアウト値の設計)。

Q. ASP.NET から共有フォルダにアクセスできない。

共有フォルダへのアクセス権の付与が要る。AD があればマシン・アカウントに権限を付与するか、IIS のワーカー・プロセスのアカウントを変更する。
それができなければ、ASP.NET の偽装か区間偽装を使う(ネットワーク・ドライブは偽装アカウントで認識されないことがある)。

Q. ASP.NET から起動した EXE のプロセスにアクセス権が無い。

偽装アカウントから EXE を起動しても、EXE の実行アカウントは偽装アカウントにならない。
IdentityImpersonation.CreateProcessAsImpersonationUser で起動する(net48 のみ。区間偽装のサンプル)。

ログ出力

Q. ログの出力フォーマットをカスタマイズできるか?

できる。ACCESS・SQLTRACE の書式は親クラス2 で定義されている。例外固有のプロパティや例外のダンプ(Exception.ToString())を出したい場合などにカスタマイズする(ログ出力方式 (log4net))。

Q. ログのローリング(1 系 ⇔ 2 系など)はできるか?

log4net(または NLog)の機能(MaxSizeRollBackups、CountDirection など)で行う。

Q. 複数のプロセスから 1 つのファイルに書き込めるか?

log4net の MinimalLock が使えるが、Open / Close を繰り返すので性能とロックの懸念がある。問題になるなら、イベントログ・DB・Syslog などのアペンダを検討する。

Q. ユーザやプロセスごとに異なるファイルに出力できるか?

アペンダのファイル・パスに環境変数(%USERPROFILE% など)を使えば、ユーザごとに変えられる。プロセスごとなら、Main の冒頭で環境変数を設定する。

Q. ログ出力をコントロールしたい。

性能面では、ロガーの level でフィルタするのが最もよい。プログラムから判定するなら、LogIF のログ・レベル取得(IsDebugEnabled など)を使う。

リッチクライアント

Q. 定義ファイルの保存先を、ユーザごとに変えられるか?

リソース・ローダのパスに %USERPROFILE%\AppData のような環境変数を指定すればよい(ターミナル サービスなど)。

通信制御

Q. プロキシ経由・プロキシ認証をサポートしているか?

サポートしている。プロキシの URL や資格情報を、定義ファイルか API で指定できる(通信制御)。

Q. Windows 認証による SSO をサポートしているか?

サポートしている(Kerberos 認証)。ただし、ベース・クライアント・セキュリティ・モデル(多段の偽装)は通常は推奨しない。外部 IdP との SSO はOAuth2 / OIDC クライアント。

Q. TCP/IP などのプロトコルをサポートしているか?

WCF netTcpBinding をサポートしている。他のプロトコルも、サービス・インターフェイスとサービス・プロキシを追加開発すれば対応できる。

その他

Q. テストに関する情報は?

Q. 改元に対応しているか?

Open棟梁の改元対応 - Google グループを参照。和暦の扱いは国際化(多言語化)。

参考

  • FAQ
  • 利用ガイド(ベターユース、FAQ 編)7 章

Tags: 再構築

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki
開発基盤部会 Wiki

移行管理: DONE / TODO

Clone this wiki locally