- - PR -
自作クラス内でMapPathを使用するとエラー(ASP.NET)
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-03 16:43
現在、自作クラス内のメソッドにてMapPathを使用したいと考えている のですが、どうしてもエラーになってしまいます。 「プログラム部分」 private static void ERR_LOG() { string Path = HttpContext.Current.Server.MapPath("."); } 「エラー内容」 >'System.NullReferenceException' のハンドルされていない例外が BATCH.exe >で発生しました。 >追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。 かなり調べているのですが、お手上げ状態です。 ご存知の方、ご教授のほど宜しくおねがいします。 | ||||||||
|
投稿日時: 2004-02-03 17:49
オブジェクト参照が設定されていない、ということは、
HttpContext.Current.Server のどれかがnull(nothing)だと言うことです。ここにブレークポイントを張って、順番にマウスカーソルをあてると、どこがnullですか? それで、どのように使っていますか?・・・という方が重要だな。 | ||||||||
|
投稿日時: 2004-02-03 17:59
この「BATCH.exe」とやらは、どのような手段で呼び出していますか? 本当にASP.NETで動いていますか? たとえば、実はWebフォームからProcessクラスなりShell関数なりで実行している、とか…… [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-02-03 18:01 ] | ||||||||
|
投稿日時: 2004-02-03 18:09
回答ありがとうございます。
>マウスカーソルをあてると、どこがnullですか? Currentが未定義の値という風になっていました。 使い方としては、変数に取得後、その場所のファイルに書き込みをおこなっています。 string Path = HttpContext.Current.Server.MapPath("./Log/ErrLog.txt"); StreamWriter s = null; System.Text.Encoding Encod = System.Text.Encoding.GetEncoding("shift-jis"); try{ s = new StreamWriter(Path, true, Encod); s.WriteLine(ErrData); }catch{ }finally{ s.Close(); } またこのexeはOSのスケジューリングで直接呼び出す形となっています。 現在はビルド中にエラーが出る状況です。 ご返答となっていますでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2004-02-03 18:33
また、CSファイルは「ソリューション」の「追加」で 「新しいプロジェクト」を作成し、コンソールアプリケーションの中にあります。 そこでEXEファイルとなっています。 これだとASP.NETで動作してないことになるのでしょうか? string Path = HttpContext.Current.Server.MapPath("."); の使用は不可能なのでしょうか? | ||||||||
|
投稿日時: 2004-02-03 18:46
>コンソールアプリケーション
どのようなアプリなのかよくわからないのですが string Path = HttpContext.Current.Server.MapPath("."); はWebアプリじゃないと使えないと思います。 (URLをサーバのPATHに変更する関数なので) 単純にPath="."で動きませんか? | ||||||||
|
投稿日時: 2004-02-03 19:30
アセンブリが実行されている(ロードされた、かな?)パスですか?
Application変数か、AppDomainあたりでとれると思いますよ。 | ||||||||
|
投稿日時: 2004-02-04 07:15
でいて、なおかつ
の時点で「これのどこに一体ASP.NETが関与しているのやら 」と思わなければ。 ASP.NETはWeb環境(WebフォームとかWebサービスとか)ですよ。 |
1