ASP.NET C#中发邮件时,为啥明明可以的捕捉到有详细文件,但就是不能做为附件发送

ASP.NET C#中发邮件时,为何明明可以的捕捉到有详细文件,但就是不能做为附件发送!
ASP.NET C#中发邮件时,为何明明可以判断到有详细文件,但就是不能做为附件发送!
 
      .......       
 //3、保存生成的Excel文件。       
 //Missing 在System.Reflection命名空间下。        
string savaPath = "~/test_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";        
workbook.SaveAs(Server.MapPath(savaPath), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);         
//--发送邮件        
MailMessage objMailMessage;       
 MailAttachment objMailAttachment;        // 创建一个附件对象         
string npath="";        npath = @Server.MapPath(savaPath);       
 //string npath = '@' + this.Server.MapPath(savaPath).ToString();        
objMailAttachment = new MailAttachment(npath);       //发送邮件的附件 此处总是报错!说邮件附件无效!               
  // 创建邮件消息         
objMailMessage = new MailMessage();... 


我F9单步调试时,npath 是一个完整的绝对路径文件(且文件已经生成),但为何在那里就提示邮件附件无效呢?
 
请哪位大侠指点,谢谢! 
------解决方案--------------------
http://blog.csdn.net/chinacsharper/article/details/9750303
------解决方案--------------------
再检查下路径是否正确。包括路径、文件名,仔细检查下。还有就是权限问题。