Asp.net mvc Internet Explorer Mobile和MVC应用程序的问题
我最近开发了第一个使用SQLCompact 4数据库的MVC3应用程序(首先通过EF4.1代码)。它在多个浏览器上运行良好。然而,当我在WindowsPhone 7手机上使用它时,有时会遇到并发错误,并且没有执行表单发布。有什么我需要注意的问题吗 编辑: 发生了什么(但并非始终如一):Asp.net mvc Internet Explorer Mobile和MVC应用程序的问题,asp.net-mvc,asp.net-mvc-3,windows-phone-7,Asp.net Mvc,Asp.net Mvc 3,Windows Phone 7,我最近开发了第一个使用SQLCompact 4数据库的MVC3应用程序(首先通过EF4.1代码)。它在多个浏览器上运行良好。然而,当我在WindowsPhone 7手机上使用它时,有时会遇到并发错误,并且没有执行表单发布。有什么我需要注意的问题吗 编辑: 发生了什么(但并非始终如一): 我在Edit.cshtml页面上更新了IE mobile上的一些数据 发布后,引擎发回Details.cshtml,显示数据尚未更新 但是,当我使用其他浏览器检查时,数据已更新 我再次按照ActionLInk访
- 我在Edit.cshtml页面上更新了IE mobile上的一些数据
- 发布后,引擎发回Details.cshtml,显示数据尚未更新
- 但是,当我使用其他浏览器检查时,数据已更新
- 我再次按照ActionLInk访问Edit.cshtml页面,并尝试再次更新数据
- 发布时,服务器上会发生DbConcurrency异常,然后(通过刷新上下文)处理该异常。这会再次发回编辑页面
- 现在,在发布时,一切都很好
- 我在Edit.cshtml页面上更新了IE mobile上的一些数据
- 发布后,引擎发回Details.cshtml,显示数据尚未更新
- 但是,当我使用其他浏览器检查时,数据已更新
嗯
发布时,服务器上会发生DbConcurrency异常,然后(通过刷新上下文)处理该异常。这会再次发回编辑页面
这是否表明您的上下文在上一篇文章中仍然有效
找到这个了吗
当预期行为是实体的SaveChanges将导致数据库更新,但实际上数据库中的任何行都不受影响时,DbContext引发异常。这通常表示数据库已被并发更新,而预期匹配的并发令牌实际上并不匹配。由于安全原因,此异常引用的状态项未序列化,序列化后对状态项的访问将返回null
这可以解释为第二篇文章实际上没有更新,或者我的解释是错误的
我仍然在考虑缓存,根据我的经验,
OutputCaching
有时可能会产生此问题,但我认为这会影响所有浏览器,但我不确定。您收到的错误是什么?如果您遇到并发问题,您在哪里创建上下文?还是我错误地认为这些并发问题涉及数据库?@Major Byte:上下文是在控制器级别生成的:public class SomeController{private MyContext db=new MyContext();…}
你能发布你收到的错误的堆栈跟踪吗?@Darin Dimitrov:这很难:DbUpdateConcurrencyException被抛出,当然是因为之前发生了其他错误,我需要找到这个问题。例如,我可以将IE mobile连接到IDE吗?