[解決済み] スレッドやタイマーでHttpServerUtility.MapPathメソッドにアクセスする方法とは?
2023-04-21 23:51:56
質問
私は
System.Timers.Timer
を使用していますが、Asp.Net アプリケーションで
HttpServerUtility.MapPath
メソッドを使用する必要がありますが、これは
HttpContext.Current.Server.MapPath
.
問題は
HttpContext.Current
は
null
のとき
Timer.Elapsed
イベントが発生したときに
HttpServerUtility オブジェクトへの参照を取得する他の方法はありますか? 私はそれを私のクラスのコンストラクタに注入することができます。それは安全ですか?現在のリクエストの終わりにガーベッジコレクションされないことをどのようにして確認できますか?
ありがとうございます!
どのように解決するのですか?
この場合
HostingEnvironment.MapPath()
の代わりに
HttpContext.Current.Server.MapPath()
スレッドやタイマーイベントではまだ試していませんが。
私が考えたいくつかの(実行不可能な)解決策。
-
で私が気にする唯一のメソッドは
HttpServerUtility
はMapPath
. というわけで、代替案としてAppDomain.CurrentDomain.BaseDirectory
を使い、ここからパスを構築することができます。 しかし、アプリケーションが仮想ディレクトリを使用している場合、これは失敗するでしょう (私のはそうです)。 -
別のアプローチです。 必要なパスをすべて
Global
クラスに追加します。これらのパスをApplication_Start
.
関連
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] enumを列挙するには
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] usingディレクティブはネームスペースの内側と外側のどちらを使うべきですか?
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 16進数値0x00は無効な文字です。
-
[解決済み] BasicHttpsBindingとWsHttpBinding with Transport securityの違いは何ですか?
-
[解決済み] NetFx45WebLinkとNetFx45RedistLinkの違いは何ですか?
-
[解決済み] 到達不能なホストに対してソケット操作を行おうとした
-
[解決済み] 'Newtonsoft.Json' には 'Microsoft.CSharp' の依存関係がすでに定義されています。
-
[解決済み] DelphiとDelphi.NETの違いについて
-
[解決済み] CryptographicException「キーセットが存在しない」、ただしWCF経由に限る
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?
-
[解決済み] .NETで文字列から発音区分符号(アクセント)を削除するにはどうすればよいですか?
-
[解決済み] HashSetとListの性能比較