Je travaille sur un site Web ASP.NET MVC et il a été hébergé dans asphostportal. Vous pouvez envoyer directement un formulaire Demander à un email spécifique dans le site que je fais, Il fonctionne parfaitement bien, la forme envoie sans problème, jusqu'à ce que je l'a accueilli. Chaque fois que je tente d'envoyer un formulaire, je reçois cette erreur:
System.IO.DirectoryNotFoundExc eption: Impossible de trouver une partie du chemin "G: \ PleskVhosts \ sellurs.com \ httpdocs \ App_Data \ uploads \ SOS.docx '
Mais quand je tente d'exécuter mon projet qui est pas hébergé, le formulaire envoie toujours sans problème. Pourquoi donc? Voici mon contrôleur:
Je pense que le problème est dans le pathing, mais je ne suis pas vraiment sûr de savoir comment y remédier. Quelqu'un s'il vous plaît aidez-moi. Je suis nouveau avec ce genre d'étoffes. Merci d'avance.Code:public class HomeController : Controller { public ActionResult Index() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Index(EmailFormModel model, IEnumerable<HttpPostedFileBase> files) { if (ModelState.IsValid) { List<string> paths = new List<string>(); foreach (var file in files) { if (file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); file.SaveAs(path); paths.Add(path); } } var message = new MailMessage(); foreach (var path in paths) { var fileInfo = new FileInfo(path); var memoryStream = new MemoryStream(); using (var stream = fileInfo.OpenRead()) { stream.CopyTo(memoryStream); } memoryStream.Position = 0; string fileName = fileInfo.Name; message.Attachments.Add(new Attachment(memoryStream, fileName)); } //Rest of business logic here string EncodedResponse = Request.Form["g-Recaptcha-Response"]; bool IsCaptchaValid = (ReCaptcha.Validate(EncodedResponse) == "True" ? true : false); if (IsCaptchaValid) { var body = "<p><b>Email From:</b> {0} ({1})</p><p><b>Subject:</b> {2} </p><p><b>Message:</b></p><p>{3}</p><p><b>Description:</b></p><p>{4}</p>"; message.To.Add(new MailAddress("***")); // replace with valid value message.From = new MailAddress("***"); // replace with valid value message.Subject = "(Inquire)"; message.Body = string.Format(body, model.FromName, model.FromEmail, model.FromSubject, model.Message, model.Desc); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = "***", // replace with valid value Password = "***" // replace with valid value }; smtp.Credentials = credential; smtp.Host = "smtp.live.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.SendCompleted += (s, e) => { //delete attached files foreach (var path in paths) System.IO.File.Delete(path); }; await smtp.SendMailAsync(message); ViewBag.Message = "Your message has been sent!"; ModelState.Clear(); return View("Index"); } } else { TempData["recaptcha"] = "Please verify that you are not a robot!"; } } return View(model); }
-----