Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文本文件I/O在VS2015开发中运行良好,但在IIS部署中不起作用_C#_Asp.net_Security_Publish_Code Behind - Fatal编程技术网

C# 文本文件I/O在VS2015开发中运行良好,但在IIS部署中不起作用

C# 文本文件I/O在VS2015开发中运行良好,但在IIS部署中不起作用,c#,asp.net,security,publish,code-behind,C#,Asp.net,Security,Publish,Code Behind,下面的代码是来自aspx代码隐藏页的c#。问题在于最后一行system.io.file在开发时在本地计算机上运行良好,但当我在托管在服务器上的IIS实例上运行它时,我维护。。。。我希望的文本不会通过此命令附加到文件中。到目前为止,我已确保该文件对IIS用户、网络、本地用户等具有完整的读/写/创建功能。我还尝试将所有者更改为IIS_USRS用户。虽然没有生成错误,但我不知道如果部署的站点没有抛出错误,如何调试其背后的代码 谢谢你的帮助 namespace checkin { public

下面的代码是来自aspx代码隐藏页的c#。问题在于最后一行system.io.file在开发时在本地计算机上运行良好,但当我在托管在服务器上的IIS实例上运行它时,我维护。。。。我希望的文本不会通过此命令附加到文件中。到目前为止,我已确保该文件对IIS用户、网络、本地用户等具有完整的读/写/创建功能。我还尝试将所有者更改为IIS_USRS用户。虽然没有生成错误,但我不知道如果部署的站点没有抛出错误,如何调试其背后的代码

谢谢你的帮助

namespace checkin
{
    public partial class buttonclicked : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var backendclickedprocindex = Request.QueryString["clickedprocindex"];
            string path = Server.MapPath(".");
            string pathfile = path + "\\clickedprocindex.txt";
            File.SetAttributes(path, FileAttributes.Normal);
            Label1.Text = pathfile;
            System.IO.File.AppendAllText(pathfile, backendclickedprocindex + ",");
        }
    }
}
什么服务器操作系统


在Server 2016中,找到您的网站使用的应用程序池,并检查该应用程序池的“标识”。如果显示“ApplicationPoolIdentity”,则需要将特定的应用程序池标识添加到文件共享中。转到文件夹,右键单击“属性”。转到安全,编辑。添加用户“IIS AppPool\YOURAPPPOOLNAME”,并为其提供所需的权限。

如果它不读取ApplicationPoolIdentity,而是类似“YOURDOMAIN\SERVICEACCOUNT”的内容,则为该用户提供对文件夹所需的权限。我正在运行OS 2008R2。应用程序池是ApplicationPoolIdentity。然后,是的,您需要将应用程序池添加到文件共享中,如上所述。注意IIS后面有一个空格。当然可以。与过去的IUSR时代相比,这是一个很大的变化。