2012-09-24 20 views
-1

我正在開發一個基於HTML5的WebApp託管在IIS7中。此webapp將請求發送到IIS7中託管的webservices。C#+ File.OpenRead(path_to_file)

服務初始化查找特定文件,例如:「appfile.txt」作爲

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

該呼叫時作爲控制檯應用程序運行在項目\ BIN或輸出目錄和能查找找到指定的文件。

但在IIS7中託管的相同內容查找「C:\ windows \ system32 \ inetsrv \ appfile.txt」。

在web.config中是否有任何配置項用於從IIS7應用程序的Bin目錄找到該文件,而不是其他位置?

任何幫助,非常感謝。

+1

http://msdn.microsoft.com/en-us/library/system.environment.currentdirectory.aspx –

+1

使用Server.MapPatch(string)將ISS應用程序映射到它的文件夾 – EOG

+0

什麼類型的應用程序?您無法在IIS上託管控制檯應用程序。 –

回答

0

您當然可以在web.config文件中創建自己的部分來獲取所需的文件路徑。它不需要預先定義。然後,只需使用任何你想要的XML閱讀器。

或者,您可以在Visual Studio中非常輕鬆地創建.resx文件,並將該路徑填充爲變量。

1

如果應用程序文件在你的web應用程序文件夾,請嘗試使用到使用Server.Mappath得到相對的文件的位置的web應用程序的根目錄:

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

這應該工作。您可能需要設置appfile.txt屬性,以便將其複製到輸出文件夾。

0

感謝您所有寶貴的意見,我可以使用下面的代碼解決這個問題我自己網頁摘要

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

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

這段代碼可以讓我沒有任何問題讀取文件內容。