美好的一天!
我继承了一个相当复杂的 MSSQL 数据库。代码中使用的是从存储过程中调用的 CLR 程序集 DLL。
在这些 CLR 程序集 DLL 中,我们通过来自 SQL 服务器的 .Net 2.0 HttpWebRequest 对象访问第三方 Web 服务。 (虽然我知道这不是执行此操作的适当方法,但请记住这是继承的,我们正在修复此问题。)
这是我们目前遇到的困境:
SQL CLR 当前限制为两 (2) 个出站通信线程(经 netstat 验证)。
是否有任何方法可以通过 .Net 配置或其他方法(包括更改程序集)来增加 SQL Server 的出站线程数量?
已尝试的项目:
- IIS工作线程增加
- 机器配置:
- 流程模型调整
- httpRuntime 调整
- system.net连接管理调整
但是,无论在 .Net 配置或 IIS 中进行什么更改,我都无法增加出站线程的数量。我花了几个小时在互联网上 Google 搜索,试图找到与 HttpWebRequests、SQL CLR、程序集、权限类型以及任何有帮助的内容相关的答案...
您可能要求的一些其他统计数据:
- 用 .NET 2.0 版编写的代码
- SQL Server 2008 R2 企业版
- Windows Server 2008 R2、IIS 7.5
- sp_configure clr_enabled = true
- 程序集/SP 设置为 EXTERNAL_ACCESS
- SP 是通过加密构建的
预先感谢您提供的任何信息。如果您还有其他需要,请随时询问。
J.R.
最佳答案
这是使用代码解决的,特别是:
- ServicePointManager.FindServicePoint();和
- ServicePointManager.DefaultConnectionLimit。
这两行代码需要添加到 CLR,然后在 SQL 服务器上重建程序集。
希望这对将来的人有所帮助。
J.R.
关于sql-server-2008 - SQL CLR、HttpWebRequest 和连接限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359899/