Tôi có một bộ điều khiển"System.Threading.Tasks.Task`1 [System.Web.Mvc.ActionResult]" hiển thị thay vì xem
public class InvitationController : Controller
{
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create(InvitationModel invitationmodel)
{
if (ModelState.IsValid)
{
var regLink = _repo.SaveAndGetRegistrationLink(invitationmodel);
IEMailer mailer = new EMailer();
var inv = mailer.Invitation(invitationmodel.Email, regLink);
await Task.WhenAll(new AsyncEmailSender().SendEmail(inv));
return RedirectToAction("Index");
}
return View(invitationmodel);
}
}
Nó hoạt động tốt trên localhost của tôi (chuyển hướng đến một trang mong muốn sau khi gửi email). tôi công bố trang web của tôi để smarterasp.net
Và bây giờ nó cho thấy một chuỗi thay vì chuyển hướng:
System.Threading.Tasks.Task`1[System.Web.Mvc.ActionResult]
lý do là gì, và làm thế nào để sửa chữa nó?
Elmah không ghi nhật ký gì cả. Email thực sự đã được gửi.
Tôi đã thử thêm dll MVC. Tất cả các tập tin dưới đây ngồi bên cạnh dll trang web của tôi.
- System.Web.Mvc
- Microsoft.Web.Infrastructure
- System.Web.Razor
- System.Web.WebPages
- System.Web.WebPages.Razor
- System. Web.Helpers
chỉnh sửa
Máy chủ quản trị đã gửi cho tôi một bản ghi từ IIS:
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
StackTrace: at System.Web.ThreadContext.AssociateWithCurrentThread(Boolean setImpersonationContext)
at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext)
at System.Web.LegacyAspNetSynchronizationContext.CallCallbackPossiblyUnderLock(SendOrPostCallback callback, Object state)
at System.Web.LegacyAspNetSynchronizationContext.CallCallback(SendOrPostCallback callback, Object state)
at System.Web.LegacyAspNetSynchronizationContext.Post(SendOrPostCallback callback, Object state)
at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.PostAction(Object state)
at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.AwaitTaskContinuation.<ThrowAsyncIfNecessary>b__1(Object s)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Bạn đã xuất bản 'System.Web.Mvc.dll' chưa? Có vẻ như máy chủ đang sử dụng phiên bản cũ hơn. – SLaks
Tôi đã thử - điều tương tự – gisek
Phiên bản .NET, ASP.NET và ASP.NET-MVC nào? –