解决SQL Server 导入System.Web.dll程序集,报错问题

本文详细介绍了如何在SQL Server中引入并使用System.Web.dll程序集来实现HTTP POST请求,包括创建C#类库,解决引入程序集报错问题,以及配置数据库启用CLR函数。通过引入本地.NET Framework 4.0的System.Web.dll并设置数据库属性,成功创建自定义CLR函数,用于处理报警信息表的触发器。
摘要由CSDN通过智能技术生成

本人由于需要做一个小项目,项目的内容是这样的:SQl Server中有个报警信息表(tb_Alarm_info),当这个报警信息表有新的数据插入时,将这个产生的报警信息发送到相关人员手机上;

解决思路:
1、使用 visual studio 建立一个 C# 类库文件,将请求短信发送的代码写在这个类库文件中,然后编译成 .dll文件;
2、在SQl Server中 引入这个 .dll 程序集 ;
3、在 Sql Server 中自定义一个 CLR 函数,用于调用 .dll里面的函数
4、在(tb_Alarm_info)表中,创建 insert 触发器

遇到的问题:在Sql Server中引入 System.Web.dll程序集 用于 http post请求时,报错;网上也没有一个系统的解决办法,所以想写这个博客来帮助遇到同样问题的朋友;

下面是详解:
1、使用visual studio软件,建立 C# 类库文件,将短信请求代码写在类库文件中
新建项目:新建项目
新建一个空的解决方案(不会自动引入其他不需要的程序集)
新建一个空的解决方案
在空解决方案中,新建一个项目
在这里插入图片描述
然后新增一个C#类库文件
在这里插入图片描述
将需要被数据库调用的函数写在类中,注意(需要被数据库调用的方法,要 声明为 static 静态方法,这样做的目的是不用实例化,即可直接调用)

然后将类库生产 .dll文件在这里插入图片描述
二、打开SQl Server 中的数据库,把在 visual studio 编译的 .dll 程序集文件 引入SQL server 数据库中
第一种方法就是直接将文件引入:
在这里插入图片描述
第二种方法:是使用代码,创建程序集将 .dll 文件引入
CREATE ASSEMBLY SMS_Send FROM 'C:\Users\Administrator\Desktop\SMS_Send\Message_Alarm_Send.dll' WITH PERMISSION_SET = UNSAFE GO

由于我的 C# 代码中 代码中 引入了 System.Web.dll 程序集,而 SQL Server中并没有这个数据集,所以导致报错
在这里插入图片描述
所以处理办法就是:
将 C# 类库中使用到的 System.Web.dll 程序引入到数据库中

– 将 数据库 属性修改为 可信任其中内容 (将KangGSIEMGS 修改为你的数据库名)

ALTER DATABASE KangGSIEMGS SET TRUSTWORTHY on;

– 将高级配置操作设置 为1 ,进行高级配置
exec sp_configure 'show advanced options', '1'; Go

– 设置 启用 CLR 函数

EXEC sp_configure 'clr enabled' , '1';  --0代表不允许,1代表运行
RECONFIGURE; 

最关键的一步来了:将System.Web.dll引入到SQL server 数据库中(注意:引入的是本地电脑中的System.Web.dll)

 -- 引入System.Web.Dll 程序集
CREATE ASSEMBLY  System_Web  --导入 DLL 程序集
FROM 
'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Web.dll'
WITH PERMISSION_SET  = 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值