我使用Visual Studio 2017,.NET 4.6.1和EF 6.2创建了一个Web窗体应用程序。每当我在本地运行应用程序时,它工作正常,但是当我发布应用程序并上传到我们的IIS服务器时,我收到屏幕截图中显示的错误。
Server Error in '/' Application.
Method not found: 'System.Threading.Tasks.Task`1<!!0> System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(System.Linq.IQueryable`1<!!0>, System.Linq.Expressions.Expression`1<System.Func`2<!!0,Boolean>>)'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1<!!0> System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(System.Linq.IQueryable`1<!!0>, System.Linq.Expressions.Expression`1<System.Func`2<!!0,Boolean>>)'.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1<!!0> System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(System.Linq.IQueryable`1<!!0>, System.Linq.Expressions.Expression`1<System.Func`2<!!0,Boolean>>)'.]
Microsoft.AspNet.Identity.EntityFramework.<GetUserAggregateAsync>d__6c.MoveNext() +0
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start(TStateMachine& stateMachine) +174
Microsoft.AspNet.Identity.EntityFramework.UserStore`6.GetUserAggregateAsync(Expression`1 filter) +199
Microsoft.AspNet.Identity.Owin.<PasswordSignInAsync>d__29.MoveNext() +150
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +13847892
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
Microsoft.AspNet.Identity.AsyncHelper.RunSync(Func`1 func) +212
SupplierPortal.Account.Login.LogIn(Object sender, EventArgs e) in C:\Users\Kobi\Dropbox\Development\WebForms\SupplierPortal_git\SupplierPortal\Account\Login.aspx.cs:39
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +138
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +150
System.Web.UI.<ProcessRequestMainAsync>d__523.MoveNext() +7834
到目前为止,我已经尝试过:
我注意到堆栈跟踪中的这一行:
SupplierPortal.Account.Login.LogIn(Object sender, EventArgs e) in C:\Users\Kobi\Dropbox\Development\WebForms\SupplierPortal_git\SupplierPortal\Account\Login.aspx.cs:39
引用Web服务器上不存在的文件路径,而不是我的本地系统,但是在VS中找不到任何属性来更改或设置它。
在IIS服务器上运行另一个Web表单应用程序,它针对早期版本的.NET和EF。这个应用程序运行正常,但我的理解是,在我的应用程序中似乎导致问题的异步方法是在更高版本的EF中引入的。
对这个问题的任何帮助都非常感谢我过去几天一直在绞尽脑汁!
答案 0 :(得分:1)
在解决问题之后,我最终创建了一个新的EC2实例。上传后,该应用程序运行无问题。我假设较旧的实例存在一些配置问题。