iis中为每个应用程序池单独设置aspnet.config配置文件

ASP.NET4.0之后,这个配置文件在并发和线程方面得到了充分的支持。比如,可以设置maxConcurrentRequestsPerCPU, maxConcurrentThreadsPerCPU和requestQueueLimit等参数,用来更加灵活的设置asp.net runtime的配置。


代码如下:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet.config
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet.config

在Windows Server 2008 R2 (IIS 7.5)中,已经允许可以为每个应用程序池(application pool)单独设置不同的设置,之前的asp.net.config只能作用于所有的framework而不能单独对站点或应用程序池设置。现在可以放心了,你可以为每个应用程序池单独设置一个自定义的aspnet.config配置文件,并且你可以保存在磁盘上的任何地方,在应用程序池启动的时候IIS会自动加载它。

MSDN的一篇文章里提到IIS应用程序池设置的时候支持了一个新属性CLRConfigFile用来设置这个配置文件的配置,但默认是没有值的,也就是说默认是只读取framework根目录下的aspnet.config文件。

IIS管理器( IIS Manager)没有为配置应用程序池而设置单独的UI界面,所以必须手工使用命令来设置。使用appcmd.exe可以来设置,参考如下的命令行代码,注意其中的2个变量(配置文件路径和应用程序池名称)。


代码如下:

%windir%\System32\inetsrv\appcmd.exe set config -section:system.applicationHost/applicationPools /[name='DefaultAppPool'].CLRConfigFile:"c:\inetpub\AppPoolClrConfig\DefaultAppPool_aspnet.config" /commit:apphost

下面的内容也是一样的,只是一个模板让你参考,注意花括号里的内容 ({AppPoolName}和{FilePath})是需要替换的。(在%windir%\System32\inetsrv下运行appcmd)
appcmd.exe set config -section:system.applicationHost/applicationPools /[name='{AppPoolName}'].CLRConfigFile:"{FilePath}" /commit:apphost
注:framework根目录下的aspnet.config文件依然也在使用,这个自定义文件只是设置不同的部分。
我们来看一个例子:


代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<runtime>
<legacyUnhandledExceptionPolicy enabled="false" />
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
<SymbolReadingPolicy enabled="1" />
<shadowCopyVerifyByTimestamp enabled="true"/>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true" />
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
</system.web>
</configuration>

关于权限,应用程序池会使用自身的identity尝试读取这个配置文件,如果这个文件没有权限的话,你可以使用如下代码给予赋权:


代码如下:

icacls c:\inetpub\AppPoolClrConfig\DefaultWebSite_aspnet.config /grant "IIS APPPOOL\DefaultAppPool":(R)

安全起见,请确保这个文件没有继承其它的权限或拥有更多的权限。
现在,你就可以任意为每个应用程序池单独设置自定义的配置文件了,当然,多个应用程序池也可以共用同一个自定义配置文件。由于应用程序池只有在启动的时候才加载配置文件,所以当你设置了配置文件以后,你需要重启相应的应用程序池。
另外,要注意的是该功能只支持IIS7.5和以上版本,并且只支持集成模式(Integrated Pipeline mode)。

进一步的资料,请查阅一下链接:

  1. <system.web>应用程序池设置:http://msdn.microsoft.com/en-us/library/dd560842.aspx
  2. ASP.NET 线程使用用法:http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx
  3. IIS 7.5应用程序池配置:http://msdn.microsoft.com/en-us/library/aa347554(VS.90).aspx

(0)

相关推荐

  • 伪静态web.config配置步骤

    复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <configuration> <!--第一步注册url重写模块放到webconfig的最上部--> <configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSeria

  • Web.Config文件配置之限制上传文件大小和时间的属性配置

    在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间. 在Web.Config文件中配置限制上传文件大小与时间字符串时,是在<httpRuntime><httpRuntime/>节中完成的,需要设置以下2个属性:maxRequestLength属性:用于防止服务器攻击,例如因用户向服务器发送大型文件而导致的拒绝访问.默认值为4096(4

  • iis中为每个应用程序池单独设置aspnet.config配置文件

    ASP.NET4.0之后,这个配置文件在并发和线程方面得到了充分的支持.比如,可以设置maxConcurrentRequestsPerCPU, maxConcurrentThreadsPerCPU和requestQueueLimit等参数,用来更加灵活的设置asp.net runtime的配置. 复制代码 代码如下: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config C:\Windows\Microsoft.NET\Fra

  • IIS 7.5中神秘的应用程序池标识解析(程序池账户)

    IIS7.5中(仅win7,win2008 SP2,win2008 R2支持),应用程序池的运行帐号,除了指定为LocalService,LocalSystem,NetWorkService这三种基本类型外,还新增了一种ApplicationPoolIdentify win7的官方帮助上是这么说的:ApplicationPoolIdentity – 默认情况下,选择"应用程序池标识"帐户.启动应用程序池时动态创建"应用程序池标识"帐户,因此,此帐户对于您的应用程序来

  • IIS中查看W3P.exe进程对应的应用程序池的方法

    先在Windows任务管理器中点击查看--选择列--选择PID(进程标识符),这样在进程中就会显示进程ID号. 对于IIS6可以运行 iisapp -a来显示应用程序池的性能列表. iisapp.vbs它是一个脚本程序,在安装2003时需要SP1才有 而IIS7可以直接用它的外壳命令 C:"Windows"System32"inetsrv>appcmd.exe list wp来显示 有时候因为服务器安全问题不能直接运行,我们可以通过下面的方法解决下. IIS7中查看w3

  • IIS中设置HTTP访问重定向到HTTPS

    目录 添加规则 添加入站空白规则 规则详情 配置完成后“应用”到当前站点 URL重写配置结果 验证 参考文章: 不啰嗦,我们直接开始! 1.购买SSL证书(我用的阿里云的免费证书),然后IIS设置好SSL. 2.如果IIS没有URL重写模块,则需要下载安装URL重写模块:Microsoft URL Rewrite Module 3.取消勾选“SSL设置”->“要求 SSL” 4.URL重写规则:ASP.NET站可直接修改web.config,和界面操作结果一致,例如: <?xml versio

  • Win2003云服务器或VPS网站程序池调整设置技巧

     一.新建池 1. 登录云服务器--打开IIS管理器--应用程序池--新建(N)--应用程序池.如下图 2. [Apppool #2]是程序池名称可以自己更改,每个程序池的设置可以选择默认,或者将现有的一个池作为模版,然后点击确定.如下图 3. 右键[Apppool #1] 属性--[回收工作进程]设置一最好是大于等于90分钟.如下图 二.转移池 例把 host1x_1 这个池里的fdfdfd 网站,从host1x_1程序池转移到Apppool #1程序池中 1. 点击程序池host1x_1 看

  • Apache和IIS共享80端口的四个设置方法

    方法一:IIS5,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2c:\Inetpub\Adminscriptscscript adsutil.vbs set w3svc/disablesocketpooling true该命令反馈如下disablesocketpooling : (BOOLEAN) True重启IISInetpub\AdminScripts>cscript adsutil.vbs set w3svc/disablesocketpooling t

  • IIS 7.5 asp Session超时时间设置方法

    有时候在web.config设置sessionState 或者类文件里设置Session.Timeout,在IIS里访问时每次都是达不到时间就超时,原因是因为在IIS中设置了 超时时间 那么我们如何设置超时时间呢? 1.IIS图形界面设置 IIS6 在IIS里面右键点击默认网站->主目录->应用程序设置里点配置->选项->启用会话状态->会话超时那里设置时间 IIS7.5 点击站点->功能视图->ASP->会话属性->超时 2.站点代码设置 在站点根目

  • IIS服务器下做301永久重定向设置方法[图解]

    不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼. 而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了. 在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题.实现方法如下: 1.新建一个站点,对应目录如E:\wwwr

  • 详解IIS中URL重写工具的规则条件(Rule conditions)

    本文结合官方文档和相关示例,详细记录了在IIS中URL重写工具下的规则条件(Rule conditions)的相关说明.规则条件允许我们通过额外的逻辑规则来过滤和匹配规则模式( rule pattern ),所以只有当规则模式的URL匹配成功时,Rule conditions才会起作用. 先附上官方文档地址:Rule conditions.下面会详细说明规则中的各种属性和设置. 逻辑分组 逻辑分组只有两个选项,任意匹配和全部匹配.规则条件是由多个条件组成的一个条件集合,所以最终判断需要根据逻辑分

  • 详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)

    rule patterns规则模式在IIS的URL重写模块中,是较为关键的设置.只有规则模式的URL匹配成功时,其他的规则才能起到作用.规则模式的匹配URL设置主要是匹配URL中的路径部分,一般使用正则表达式和通配符对URL路径进行匹配,下面会仔细的说明. 首先要了解规则模式是匹配URL中的哪一部分,假设当前有网站的URL地址为http://shiyousan.com/Home/Index?page=1,那么规则模式匹配的部分就是Home/Index,域名的主机部分和参数部分如果要匹配,则需要在

随机推荐