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