首页 > 解决方案 > iOS Xamarin 上的实体框架连接在屏幕关闭时关闭

问题描述

我有一个使用实体框架的 Xamarin 应用程序。

它在 UWP 上运行良好,但是在 iOS 上,如果我锁定手机,然后在几分钟后解锁,我在从数据库加载数据或向数据库加载数据时收到以下错误:

Snix_Execute (provider: SNI_PN7, error: 35 - SNI_ERROR_35) Snix_Execute (provider: SNI_PN7, error: 35 - SNI_ERROR_35)

除了内部例外:

Unable to write data to the transport connection: The socket has been shut down.

我认为这与 iOS 在清理过程中关闭连接有关,但如何重新打开连接?我还可以提供哪些其他信息来帮助解决此问题?我知道我可以使用 OnResume 方法重新打开连接,但实际重新打开连接的代码是什么?

标签: c#iosentity-frameworkxamarin

解决方案


编辑:

问题在于池化,这意味着连接基本上被缓存了,即使当手机关闭时,它们也被关闭了。为了克服这个问题,您可以通过添加Pooling=False;到字符串来关闭连接字符串中的池:

邮政

或者每次应用在 OnResumeMethod 上唤醒时清除池:

SqlConnection.ClearAllPools();

邮政


推荐阅读