在IIS 7.0中部署时,检索txt文件会出错

时间:2014-02-19 05:21:44

标签: c# asp.net iis

我有一个文本文件 RHKLIS.txt ,它位于 D:\ drive 中。我找到了一些代码来检索 文本文件的路径,在本地主机中运行时工作正常。我已使用 IIS 7.0 在某些测试计算机中部署了代码 并尝试访问相同的代码,但它没有检索它给出错误 Sql事务已在行中关闭if(!File.Exists(path))。 所以我知道指定的路径是代码中的问题。但是我仍然不知道它是什么类型的错误,因为在同一个测试机器的D:\驱动器中放置了相同的文本文件。

web.config中的

<appSettings>

  <add key="LISpath" value="D:\RHKLIS.txt"/>

</appSettings>

.cs文件

   string path = ConfigurationManager.AppSettings["LISpath"].ToString(); 
   FileStream fs = null;
   if (!File.Exists(path))
   {
       fs = File.Create(path);
       fs.Close();
   }

   StreamWriter sw = File.AppendText(path);

   sw.WriteLine("O~" + billHospNo.Text.Trim() + "~ ~" + opBillNo.Text + "~" + billDate.Text + "~" + itemCode.Text + "~" + itemName.Text + "~" + p.Honourfic + "~" + p.Patient_Name + "~" + p.Gender + "~" + p.Age + "~" + "Y" + "~" + "~" + "~" + "~" + "~" + "~" + department.SelectedItem.ToString() + "~" + billDate.Text + "~" + itemDept.Value + "~" + deptName + "~" + yearOB + "~" + due);
   sw.Close();

2 个答案:

答案 0 :(得分:0)

这听起来像是一个安全问题。首先,文件位于D:的根目录意味着您将打开整个D:到IIS服务器(不是很好的做法)。而是创建一个新文件夹,添加IIS_IUSRS用户(具有读取和执行,列表文件夹内容和读取权限) - 然后将该文件放在该文件夹中。更改配置文件中的设置,该设置应该有效...

答案 1 :(得分:0)

这假设您拥有服务器上的完全管理员权限。

右键单击该文件夹,选择属性。将打开文件夹的属性窗口 - 选择安全标记。您将看到两个列表 - 顶部是用户或组,底部是权限 - 单击用户下的“编辑”按钮。

另一个寡妇将打开 - 单击“添加”按钮 - 这将打开另一个窗口。确保位置适用于本地计算机而不是域,然后单击“高级”,然后单击“立即查找”按钮。查看列表,直到看到IIS_IUSRS用户并双击它。这将把用户放在选择窗口的底部文本字段中。只需单击确定,它将自动为该用户提供该文件夹所需的权限 - 然后只需单击确定直到所有窗口都关闭。

我希望这有帮助...这允许从IIS对该文件夹进行只读访问。