积极答复者
请求“System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败

问题
-
我写了一段代码编译成一个DLL,代码如下
WebRequest ReverseGeocodeRequest = WebRequest.Create(new Uri(GeocodeURL+Long+","+Lat+"&type="+GeocodeType));
HttpWebResponse ReverseGeocodeResponse = (HttpWebResponse)ReverseGeocodeRequest.GetResponse();
Stream ReverseGeocodeStream = ReverseGeocodeResponse.GetResponseStream();
StreamReader objReader = new StreamReader(ReverseGeocodeStream, System.Text.Encoding.GetEncoding("GBK"));
XmlDocument ReverseGeocodeXML = new XmlDocument();
ReverseGeocodeXML.Load(objReader);编译成DLL后在WINFORM环境中调用正常,可我把这个DLL注册到SQL server 2008 r2 中,并开启了CLR,创建了一个标值函数,为什么在调用这个标值函数时提示
请求“System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
请问是怎么回事啊,哪个URL是个远程地址HTTP1.1 GET方式,返回一个XML文件
答案
全部回复
-
您好,现在我也碰到了这个问题:
就是我在sql2008里注册一个dll 然后我创建发送邮件的存储过程(在页面发送邮件的方法执行成功) 但是在sql2008执行该存储过程时就报错
sql2008代码:--注册clr
create assembly Clrassembly from 'C:\quanxiao\quanxiao\SilverlightApplication1\CRL\bin\Debug\CRL.dll'go
--发送邮件
create proc SendEmailInfo as external name Clrassembly."CRL.SQLProc".SendEmailInfo
goexec SendEmailInfo
go然后报错:消息 6522,级别 16,状态 1,过程 SendEmailInfo,第 0 行
在执行用户定义例程或聚合 "SendEmailInfo" 期间出现 .NET Framework 错误:
System.Security.SecurityException: 请求“System.Net.Mail.SmtpPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
System.Security.SecurityException:
在 System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
在 System.Security.CodeAccessPermission.Demand()
在 System.Net.Mail.SmtpClient.Initialize()
在 System.Net.Mail.SmtpClient..ctor()
在 CRL.SQLProc.SendEmailInfo()