C#+ File.OpenRead(path_to_file)

时间:2012-09-24 19:42:27

标签: c# file iis-7

我正在开发一个基于HTML5的WebApp,它在IIS7中托管。此Web应用程序将请求发送到IIS7中托管的Web服务。

服务初始化会查找特定文件,例如:“appfile.txt”为

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

作为控制台应用程序运行时,此调用将在project \ bin或output目录中查找,并能够找到指定的文件。

但IIS7中托管的内容在“C:\ windows \ system32 \ inetsrv \ appfile.txt”中查找。

是否有在web.config中使用的配置项找到IIS7应用程序的Bin目录中的文件而不是其他任何地方?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

如果应用程序文件位于Web应用程序文件夹中,请尝试使用Server.MapPath获取文件相对于Web应用程序根目录的位置:

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

那应该有用。您可能需要设置appfile.txt属性,以便将其复制到输出文件夹。

答案 1 :(得分:0)

您当然可以在web.config文件中创建自己的部分来获取所需的文件路径。它不需要预先定义。然后只需使用您想要的任何XML阅读器。

或者,您可以在Visual Studio中非常轻松地创建.resx文件,并将该路径填充为变量。

答案 2 :(得分:0)

感谢您提出的所有宝贵意见,我可以使用以下代码段自行解决此问题

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

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

这段代码允许我无任何问题地读取文件内容。