2

美好的一天!SQL CLR,HttpWebRequest和连接限制

我已经继承了一个相当复杂的MSSQL数据库。在代码中使用的是从存储过程中调用的CLR程序集DLL。

在这些CLR程序集DLL中,我们通过来自SQL服务器的.Net 2.0 HttpWebRequest对象与第三方Web服务接触。 (虽然我明白,这是不恰当的方式来做到这一点,请记住,这是继承,我们在修复这个过程。)

这是我们正在经历的窘境:

SQL CLR当前被限制为两(2)个出站通信线程(由netstat验证)。

是否有任何方法通过.Net配置或其他方法(包括更改程序集)来增加SQL服务器的出站线程数量?

项目已经尝试:

  • IIS工作线程增加
  • 的machine.config:
    • 中processModel调整
    • 的httpRuntime调整
    • system.net connectionManagement调整

但是,无论在.Net配置或IIS中进行了哪些更改,我都无法增加出站线程的数量。我花了几个小时Google'ing的互联网络,试图找到答案,因为它涉及到HttpWebRequests,SQL CLR,组件,许可类型,任何可以帮助...

其他一些统计您可以要求:

写在.NET版本
  • 代码2.0
  • 的SQL Server 2008 R2 EE
  • 的Windows Server 2008 R2,IIS 7.5
  • sp_configure的clr_enabled =真
  • 大会/ SP设置为EXTERNAL_ACCESS
  • SP与加密内置

预先感谢您对您也许能够提供的任何信息。如果您需要其他东西,请随时提问。

J.R.

回答

4

此使用代码得到解决,特别是:

  • ServicePointManager.FindServicePoint();和
  • ServicePointManager.DefaultConnectionLimit。

需要将这两行添加到CLR中,然后重新生成SQL服务器上的程序集。

希望以后能帮助别人。

J.R.