Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ASP.NET更改为4.0是否会使用CLR 4运行虚拟目录?_C#_Asp.net_.net 4.0_Iis 6_Clr - Fatal编程技术网

C# 将ASP.NET更改为4.0是否会使用CLR 4运行虚拟目录?

C# 将ASP.NET更改为4.0是否会使用CLR 4运行虚拟目录?,c#,asp.net,.net-4.0,iis-6,clr,C#,Asp.net,.net 4.0,Iis 6,Clr,我们计划在我们的一个Web服务中使用.NET4,因为它可以更好地处理线程池 这让我想到,如果我将虚拟目录下运行的ASP.NET版本更改为4.0,我甚至不必使用.NET 4重新编译我的库,因为IIS将使用.NET CLR 4生成新的w3process,我的所有库都将加载到该版本中 这意味着它将在我的.NET2库中使用新的线程池。有些事情听起来不太对劲 有些东西听起来不对 不,是的。将虚拟目录配置为使用ASP.NET 4时,应用程序将使用CLR 4.0运行,即使所有程序集都是根据.NET 2.0编译

我们计划在我们的一个Web服务中使用.NET4,因为它可以更好地处理线程池

这让我想到,如果我将虚拟目录下运行的ASP.NET版本更改为4.0,我甚至不必使用.NET 4重新编译我的库,因为IIS将使用.NET CLR 4生成新的w3process,我的所有库都将加载到该版本中

这意味着它将在我的.NET2库中使用新的线程池。有些事情听起来不太对劲

有些东西听起来不对

不,是的。将虚拟目录配置为使用ASP.NET 4时,应用程序将使用CLR 4.0运行,即使所有程序集都是根据.NET 2.0编译的


更新:

要验证这一点,您可以创建以下
Test.aspx
页面:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Threading" %>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <%= typeof(ThreadPool).Assembly.FullName %>
</body>
</html>
然后将虚拟目录ASP.NET版本交换回2.0,并生成以下内容:

mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

因此,我们可以通过在虚拟目录中更改目标框架版本看到,我们可以在CLR 4.0中运行应用程序。

为什么您认为加载.NET 2.0库很奇怪?奇怪的是,我没有针对.Net4重新编译我的Web服务,因为它将使用.NET 4 CLR来运行它。这意味着我只需更改ASP.NET版本就可以获得.NET 4的好处。是吗?我还是不明白你为什么觉得奇怪。.NET4.0是为加载.NET2.0程序集而设计的。是的,这是否意味着我可以在不重新编译.NET2库的情况下在.NET4中快速使用新的线程池?