-1

IIS7 でホストされている HTML5 ベースの WebApp を開発しています。この Web アプリケーションは、IIS7 でホストされている Web サービスに要求を送信します。

サービスの初期化は、特定のファイルを検索します。たとえば、「appfile.txt」を

FileStream stream = File.OpenRead("appfile.txt"); // opens file for reading.

この呼び出しは、コンソール アプリケーションとして実行されると、project\bin または出力ディレクトリを検索し、指定されたファイルを見つけることができます。

ただし、IIS7 でホストされているものと同じものが "C:\windows\system32\inetsrv\appfile.txt" で検索されます。

IIS7 アプリケーションの Bin ディレクトリからファイルを見つけ、他の場所ではなく、web.config で使用した構成項目はありますか?

どんな助けでも大歓迎です。

4

3 に答える 3

1

アプリファイルがWebアプリケーションフォルダーにある場合は、Server.MapPathを使用して、Webアプリのルートを基準にしたファイルの場所を取得してみてください。

File.OpenRead(Server.MapPath("~/appfile.txt"))

それはうまくいくはずです。おそらく、appfile.txtプロパティを設定して、出力フォルダーにコピーする必要があります。

于 2012-09-24T19:49:17.503 に答える
0

確かに、web.configファイルに独自のセクションを作成して、必要なファイルパスを取得できます。事前定義する必要はありません。次に、必要なXMLリーダーを使用します。

または、Visual Studioで.resxファイルを非常に簡単に作成し、そこに変数としてパスを入力することもできます。

于 2012-09-24T19:46:38.080 に答える
0

貴重なコメントをありがとうございます。次のコード スニペットを使用して、この問題を自分で解決できます。

string path = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;

string[] labs = File.ReadAllLines(path + "/appfile.txt");

このコードにより、問題なくファイルの内容を読み取ることができます。

于 2012-10-16T08:58:55.440 に答える