Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# Exist在本地主机上返回true,在服务器c上返回false_C#_Asp.net_Iis_Localhost_Fileinfo - Fatal编程技术网

C# Exist在本地主机上返回true,在服务器c上返回false

C# Exist在本地主机上返回true,在服务器c上返回false,c#,asp.net,iis,localhost,fileinfo,C#,Asp.net,Iis,Localhost,Fileinfo,我有一个网格,其中包含另一台服务器上的文件列表和每行的下载按钮。单击按钮时,应下载文件。当我在localhost上单击它时,file.Exist返回true,我可以下载该文件。但是,当我在服务器IIS上尝试相同的按钮时,file.Exist返回false,并且无法下载该文件。此服务器也可以访问该文件。下面是我的代码片段 var fileNameToShow = "8D.xls"; var fileNameAndPath = &q

我有一个网格,其中包含另一台服务器上的文件列表和每行的下载按钮。单击按钮时,应下载文件。当我在localhost上单击它时,file.Exist返回true,我可以下载该文件。但是,当我在服务器IIS上尝试相同的按钮时,file.Exist返回false,并且无法下载该文件。此服务器也可以访问该文件。下面是我的代码片段

            var fileNameToShow = "8D.xls";
            var fileNameAndPath = "\\\\10.1.101.151\\Files\\Live\\10\\8D.xls"
            FileInfo file = new FileInfo(fileNameAndPath);
            file.Refresh();
            if (file.Exists)
            {
                // Send the file to the browser
                Response.Clear();
                Response.AddHeader("Content-Disposition",
                    "attachment; filename= " + fileNameToShow + "; size=" + file.Length.ToString());
                Response.TransmitFile(fileNameAndPath);
                Response.Flush();
                Response.End();
            }
            else
            {
                throw new Exception("File does not exist!");
            }
我能做些什么来解决这个问题

编辑:文件位于10.1.101.151中。IIS位于另一台服务器中。我的本地 也是另一台电脑


首先,您需要在服务器上设置文件夹的权限,并将IIS所在的服务器添加到8D.xls所在的服务器。

其次,您需要设置应用程序池的标识,选择一个自定义帐户,您可以设置管理员


这只是意味着您忘记了解关键区别,您可以访问localhost上的文件,因为localhost使用您的凭据运行,并且具有从远程服务器读取的权限。在IIS上,服务器未使用您的凭据运行。您必须在IIS上设置角色才能使用凭据运行。见:我编辑了这个问题。你能再考虑一下吗?当我重放这个问题并测试它时,我把文件放在Serv2和iServer上。我在本地计算机上访问该站点。我在应用程序中使用的代码与您的相同,唯一的区别是文件路径,\\\\server IP\\c\\Files\\Live\\10\\8D.xls。我将其存储在server1的C驱动器中,因此路径中有一个C。