我经常收到Client Disconnected消息.我不使用负载平衡 - 只有一个IIS服务器.我需要知道导致这种情况的原因以及如何解决这个问题.
这是异常信息:
Type: System.Web.HttpException
Message: The client disconnected.
Exception Data:
Source: System.Web
TargetSite: Void ThrowError(System.Exception, System.String, System.String, Boolean)
StackTrace:
at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
at System.Web.UI.HiddenFieldPageStatePersister.Load()
at System.Web.UI.Page.LoadPageStateFromPersistenceMedium()
at System.Web.UI.Page.LoadAllState()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Run Code Online (Sandbox Code Playgroud) 我正在使用Entity Framework 6 Code First和Fluent API.我在Visit和VisitPage之间有一对多的关系(1个访问有许多VisitPage对象).这是POCO类的简化版本:
访问:Id(身份),UrlReferrer,Pages. VisitPage:Id(身份),姓名,访问,VisitId
首先,我创建一个Visit对象并向其添加一个VisitPage对象.然后,我将它们插入到DB中.在此之前一切正常.观察:VisitPage中的VisitId属性在插入后自动设置(它从DB获取标识值并设置属性).
然后,在断开连接的环境中,我为访问添加了一个新页面(我没有从DB获取Visit对象,这就是我所说的断开连接的环境).这个新页面引用了相同的访问对象,但我没有设置VisitId属性,因为我认为EF应该根据Visit属性设置它.这就是问题,EF没有设置它,事实上,它抛出一个异常,说Visit属性和VisitId属性的值不匹配.我期待EF能够在引擎盖下执行此操作(例如,在DetectChanges方法中),但事实并非如此.
异常消息:
发生了引用完整性约束违规:关系一端的"VisitId"的属性值与另一端的"VisitPage.VisitId"的属性值不匹配.
那么,我该如何解决这个问题呢?我看到两种可能的解决方案:1)在连接环境中工作 - >从EF获取Visit对象,然后添加页面对象.在这种情况下,EF更新VisitId值并且它可以工作.2)设置Visit对象后手动设置VisitId.
我希望我已经足够清楚了.如果没有,请告诉我.
c# referential-integrity entity-framework disconnected-session
是否有脚本可以从任何服务器注销我断开连接的 RDP 会话?这导致了很多痛苦和持续的广告帐户锁定。
任何帮助都是极好的。