我正在开发一个基于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目录中的文件而不是其他任何地方?
非常感谢任何帮助。
答案 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");
这段代码允许我无任何问题地读取文件内容。