会发生什么像DB连接,打开的文件,......当.NET应用程序(而不是web应用程序)崩溃.NET应用程序崩溃,国家非托管资源的
1
A
回答
1
这取决于资源,以及如何在非托管资源该资源的端点处理它。对于数据库连接,数据库服务器将侦听并等待任何消息,只要它被配置为等待(可能不是很长),然后终止套接字。文件可能会陷入锁定状态(“被另一个进程使用”),但是IME极其罕见。
1
当原生(C/C++/etc)应用程序崩溃时会发生同样的情况。
大多数情况下,操作系统会立即清理。它将关闭文件句柄,互斥锁,网络连接以及操作系统负责的其他任何东西。
对于操作系统未提供的其他资源(例如连接到SQL服务器),取决于哪一部分软件负责该资源。正如Rex M提到的那样,SQL服务器将在那里等待连接超时,然后它将释放它,但其他第三方软件的行为可能会有所不同。
如果您从一块蹩脚的第三方软件中获得一些非托管资源,可能会导致问题,因为它可能不够聪明,无法使用超时或类似机制,并且非托管资源可能永远无法释放。
如果您的第三方软件超时,它也会导致问题。例如,如果SQL服务器连接超时时间为20分钟,并且在2分钟内崩溃了20次,那么您将有20个“用完”连接,直到超时发生。你可以通过做这种事情来摆脱关系。
相关问题
- 1. 非托管C++代码导致崩溃到.Net应用程序
- 2. 非托管dll调用崩溃一个dotnet应用程序?
- 3. 崩溃转储 - 使用WinDbg解析.NET应用程序中的非托管代码崩溃
- 4. .NET应用程序中的非托管资源消耗了大量内存
- 5. .NET中“托管”与“非托管”资源的含义是什么?
- 6. .Net中的托管和非托管资源
- 7. 当WPF应用程序关闭时关闭非托管资源
- 8. 某些国家/地区的应用程序崩溃
- 9. 运行非托管资源
- 10. 非托管资源和Dispose()
- 11. 从非托管win32程序集DLL调用托管代码 - 崩溃
- 12. 什么是托管资源和非托管资源?
- 13. 以线程处理非托管资源
- 14. C#使用企业库时的非托管应用程序崩溃
- 15. 玩家在应用程序中崩溃
- 16. 非托管导出(DLLExport)崩溃
- 17. 如何在非托管C++应用程序中托管许可的.Net控件?
- 18. UIWebView在资源加载时崩溃的应用程序
- 19. 调用嵌入式资源时应用程序崩溃
- 20. 非托管堆.NET应用程序的大小
- 21. .NET应用程序的经验突然非托管内存
- 22. Android:非崩溃应用程序
- 23. 应用程序崩溃,除非在Xcode
- 24. .NET应用程序崩溃除非重命名
- 25. 在混合C++ .NET应用程序中强调托管还是非托管?
- 26. UWP/Win2D - 应用程序崩溃,而装载帆布资源
- 27. 从互联网下载资源时iOS应用程序崩溃
- 28. 管理应用程序崩溃
- 29. 应用程序崩溃报告起源
- 30. Windows资源管理器一直崩溃