【发布时间】:2015-10-19 08:14:05
【问题描述】:
我在使用 C# MailMessage 将文件附加到邮件消息时遇到了困难。我已经对此进行了详细搜索,并尝试了很多我遇到的事情。目前的化身是:
string uploadFile1 = fulAttachment1.FileName;
MyMessage.Attachments.Add(
new Attachment(fulAttachment1.PostedFile.InputStream, uploadFile1));
其中 fulAttachment1 是文件选择器控件。
我不断出现的错误是这样开始的:
System.IO.FileNotFoundException: 找不到文件 'C:\Windows\SysWOW64\inetsrv\neptun-300x299.jpg'
我完全不明白它为什么要查看文件系统。
我应该补充一点,我尝试过的许多技术在 Visual Studio 2012 中以及在部署到我的开发机器上的 IIS 时都有效。将其部署到 Internet 主机上的 IIS 时会出现问题。他们说站点配置没有问题,我对此不太了解。
这是错误消息的其余部分:
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options , SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.Net.Mail.AttachmentBase.SetContentFromFile(String fileName, String mediaType) at System.Net.Mail.AttachmentBase..ctor(String fileName) at System.Net.Mail.Attachment..ctor(String fileName) at RSG.Webforms.Contact.btnSubmit_Click(Object sender, EventArgs e)在 c:\Users\suser\Documents\Visual Studio 2012\Projects\RSA\Webforms\Contact.aspx.cs:40 行
我不明白的另一件事是为什么远程服务器上的 IIS 会引用我的本地 Visual Studio 项目
【问题讨论】:
-
看起来您正在使用
FileUpload控件。您是否尝试过fulAttachment1.FileContent而不是fulAttachment1.PostedFile.InputStream?我不确定这是否只是PostedFile.InputStream的捷径,但值得一试。 -
感谢您的建议,但这并没有解决问题。我正在将错误消息的全文添加到我的原始帖子中...
-
这不是指您当地的视觉工作室项目。它指的是使用您的程序编译的调试符号。那是
.pdb文件。该项目在发布之前已在本地编译,因此,它在 PDB 文件中包含本地路径。至于您的问题,我不确定它为什么尝试引用文件而不是使用流。
标签: c# email attachment filepicker