拒绝访问该路径C#错误

时间:2012-04-01 18:53:02

标签: asp.net file access-denied

我希望我的用户能够点击提交按钮并将字符串写入css文件。当我点击提交按钮时,我收到错误消息:

  

拒绝访问路径'C:/ .....'

从localhost和我的主机(123reg)

运行站点时会发生这种情况
protected void btnSubmit(object sender, EventArgs e) 
{ 
   using (StreamWriter writer = new StreamWriter("B00101168.css")) 
   { 
      writer.Write("Word "); 
      writer.WriteLine("word 2"); 
   } 
}

1 个答案:

答案 0 :(得分:1)

第一个问题是,如果没有对文件夹设置权限,则无法写入文件。有关详细信息,请参阅this link。实质上,您必须授予Internet Guest Account权限才能写入该文件夹。

但是,更大的问题是,你可能不应该尝试动态编写CSS文件。至少,不是你想要的方式。你能解释一下为什么要尝试动态更改服务器上的CSS文件吗?如果你能解释一下你想要完成什么,我可能会有一些关于如何做到这一点的建议,比你想做的更好。

更新:您正在使用WebForms,并且您正在尝试动态生成CSS。所以这是一种方法。

使用通用页面处理程序 - 以.ashx结尾的文件。您现在正在动态创建CSS,但不是将其写入文件,而是直接将其输出到浏览器。这是一些(未经测试的!)代码:

在DynamicStyles.ashx文件中,基本上没有任何内容可以自动生成。

在DynamicStyles.ashx.cs文件中:

public void ProcessRequest( HttpContext context )
{
    StringBuilder css = new StringBuilder();
    // Use the StringBuilder to generate the CSS 
    // however you are currently doing it.

    context.Response.ContentType = "text/css";
    context.Response.Write( css.ToString() );
}

然后,在需要CSS文件的代码中,像其他任何CSS一样包含它:

<link rel="stylesheet" type="text/css" href="/path/to/DynamicStyles.ashx">