Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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#中指定的文件(无上载)_C#_File - Fatal编程技术网

系统找不到c#中指定的文件(无上载)

系统找不到c#中指定的文件(无上载),c#,file,C#,File,今天早上,我在C#ASP.NET中开发的应用程序出现了一个以前从未出现过的问题 此应用程序将文件名存储在数据库的列中 当需要通过电子邮件发送附件时,应用程序会查找文件名并将其附加到邮件中 应用程序无法在服务器的物理路径上找到附件,即使这些文件正确存在并阻止发送带有附件的电子邮件 错误是 系统找不到指定的文件“C:\inetpub\wwwroot\public\newfile.pdf” 文件newfile.pdf位于公用文件夹中 如何解决这个问题 下面是我的简化代码 List<string&

今天早上,我在C#ASP.NET中开发的应用程序出现了一个以前从未出现过的问题

此应用程序将文件名存储在数据库的列中

当需要通过电子邮件发送附件时,应用程序会查找文件名并将其附加到邮件中

应用程序无法在服务器的物理路径上找到附件,即使这些文件正确存在并阻止发送带有附件的电子邮件

错误是

系统找不到指定的文件“C:\inetpub\wwwroot\public\newfile.pdf”

文件
newfile.pdf
位于公用文件夹中

如何解决这个问题

下面是我的简化代码

List<string> listofattachments = new List<string>();


using (OdbcDataReader reader = cmd.ExecuteReader())
{
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            listofattachments.Add(reader["attachment"].ToString());
        }
    }
}


foreach (string attachments in listofattachments)
{
   if (!string.IsNullOrEmpty(attachments))
   {
      mailMessagePlainText.Attachments.Add(new Attachment(@"C:\\inetpub\\wwwroot\\public\\" + attachments.Trim().ToString())); //line of error
   }
}
List listofattachments=new List();
使用(OdbcDataReader=cmd.ExecuteReader())
{
if(reader.HasRows)
{
while(reader.Read())
{
添加(读卡器[“附件”].ToString());
}
}
}
foreach(listofattachments中的字符串附件)
{
如果(!string.IsNullOrEmpty(附件))
{
mailMessagePlainText.Attachments.Add(新附件(@“C:\\inetpub\\wwwroot\\public\\”+Attachments.Trim().ToString());//错误行
}
}

代码不会自行中断。自上次使用以来,您做了哪些更改?这意味着代码和服务器配置?代码不是这里唯一的变量,apppool读取目录文件ext的权限如何?它是否隐藏…
附件(@“C:\\inetpub\\wwwroot\\public\\\”+附件。Trim().ToString()
真的很混乱。相反,你应该使用
路径。组合
然后使用
文件。Exists
或者更好的
FileInfo.Exists
。使用
字符串
进行路径操作是错误的,这不是我的专业领域,但是对于IIS来说,“每个人”可能都不够(也许有人可以澄清这一点)。您可以尝试为您的目录授予显式权限,ISS AppPool \上面@TheGeneral的评论提出了一些好的观点。同样,我不是专家,但我发现代码不会自行中断。自上次运行以来,您做了哪些更改?这意味着代码和服务器配置?代码不是唯一的变量,ap的权限如何ppool读取目录文件ext.是否隐藏…
Attachment(@“C:\\inetpub\\wwwroot\\public\\”+attachments.Trim().ToString()
真的很混乱。相反,你应该使用
路径。组合
然后使用
文件。Exists
或者更好的
FileInfo.Exists
。使用
字符串
进行路径操作是错误的,这不是我的专业领域,但是对于IIS来说,“每个人”可能都不够(也许有人可以澄清这一点)。您可以尝试授予目录显式权限,ISS AppPool \上面@TheGeneral的评论提出了一些好的观点。再说一遍,我不是专家,但我确实发现了一些问题