5

我创建了一个小型 Web 服务,它使用代理创建HttpWebRequest到另一个网站,在我使用代理后我得到了那个错误:

请求“System.Net.WebPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。

我不知道如何解决它。

这是我的代码,

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://website.com");
req.CookieContainer = c;

req.Proxy = new WebProxy("IP:PORT");

req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.4; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)";
req.Accept = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
req.Headers.Add("Accept-Language", "en-US");
req.ServicePoint.Expect100Continue = false;
req.AllowAutoRedirect = false;
req.Timeout = 10000;
req.Method = "GET";
req.KeepAlive = true;
req.ProtocolVersion = HttpVersion.Version10;
4

3 回答 3

2

您似乎遇到了与信任相关的问题。您可以通过在您的Web.Config, under System.Web,

<trust level="Full" />

WebPermission在某个环境下不可用medium trust(您可以查看这篇文章来修改此行为以及您不应该这样做的原因)。

但是,如果您需要,full trust您可能必须重新考虑您的应用程序的要求。

于 2013-03-06T03:45:17.060 回答
0

我也遇到了这个问题 - 结果是由于执行网络请求的 dll 是从网络下载的。

我必须进入文件资源管理器中的 dll 属性(右键单击>属性)并单击“取消阻止”-确保单击“应用”,然后单击“确定”。

于 2016-11-09T21:40:27.887 回答
0

转到您的项目/应用程序 (WPF) 的属性

在安全中选择启用 clickone 安全设置。并设置项目的信任级别

于 2016-08-22T07:39:08.697 回答