WebRequest.在.net 3.5类库中创建导致SecurityException,但在.net 4.5中不会

本文关键字:net 但在 SecurityException 创建 类库 WebRequest | 更新日期: 2023-09-27 18:05:41

以下代码在。net 3.5类库项目中中断,但在。net 4中不会中断。我被难住了,希望你能给我一些建议:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using NUnit.Framework;
namespace test2
{
[TestFixture]
public class TestClass
{
    [Test]
    public void Test()
    {
        var request =
             WebRequest.Create("http://www.google.com");
特定例外:

System.Security.SecurityException : Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
   at System.Security.CodeAccessSecurityEngine.Check(Object demand, ref StackCrawlMark stackMark, Boolean isPermSet)
   at System.Security.CodeAccessPermission.Demand()
   at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint)
   at System.Net.HttpRequestCreator.Create(Uri Uri)
   at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
   at System.Net.WebRequest.Create(String requestUriString)
   at test2.LaunchRequestInitializeIdsTestFixture.Test()

WebRequest.在.net 3.5类库中创建导致SecurityException,但在.net 4.5中不会

正如例外所说,答案是代码访问安全(CAS)。我正在从网络驱动器(托管虚拟机)构建我的代码。在。net 3.5及以下版本中,网络驱动器具有较低的权限。此限制在。net 3.5 SP1及以上版本中被关闭。下面的链接让我找到了正确的方向:http://blogs.msdn.com/b/vancem/archive/2008/08/13/net-framework-3-5-sp1-allows-managed-code-to-be-launched-from-a-network-share.aspx

下面,从中的caspol运行。. NET 2安装目录让我的代码工作:
caspol.exe -m -pp off -ag 1 -url "file:///Z:/*" FullTrust

我从这个有用的帖子中得到了上面的命令行:https://julianscorner.com/wiki/programming/caspol_network_share

供参考:要恢复到默认值,只需运行"caspol -restore"

相关文章: