IIS7 添加虚拟目录和应用程序有什么区别

IIS7 添加虚拟目录和应用程序有什么区别,第1张

虚拟目录应用程序是两个非常容易混淆的概念。但是在IIS 7.0中,虚拟目录和应用程序是截然不同的两个概念。本章主要介绍应用程序和应用程序池,而没有介绍虚拟目录,但是在继续讨论之前,我们必须明辨虚拟目录和应用程序之间的区别。

应用程序是一个逻辑边界,这个逻辑边界可以分隔网站及其组成部分。虚拟目录则是一个真实的指针,这个指针指向了一个本地或远程物理路径。虚拟目录总是存在于应用程序之中,一个应用程序可包括多个虚拟目录。

很多系统能运行在32位及64位的IIS下,但是,一般情况下,我们建议将win2008的IIS运行在32状态下,原因是ASP程序必须在32位下才能使用ACCESS。

设置办法:

1、打开IIS管理器,点应用程序池。

2、再点右边的"设置应用程序池默认设置"。

3、再点启用32位应用程序,将false改成true。

4、确定后就生效了。

using System

using System.Collections.Generic

using System.Text

using System.DirectoryServices

using System.IO

using System.Security.AccessControl

using System.Data

using System.Data.SqlClient

using Microsoft.Web.Administration

namespace Setup

{

  public  class Win2008

    {

    //设置应用程序使用.NET4.0

      public static void EnableNet4()

      {

          try

          {

              using (ServerManager serverManager = new ServerManager())

              {

                  Configuration config = serverManager.GetApplicationHostConfiguration()

                  ConfigurationSection isapiCgiRestrictionSection = config.GetSection("system.webServer/security/isapiCgiRestriction")

                  ConfigurationElementCollection isapiCgiRestrictionCollection = isapiCgiRestrictionSection.GetCollection()

                  foreach (ConfigurationElement element in isapiCgiRestrictionCollection)

                  {

                      string path = element["path"].ToString()

                      string allowed = element["allowed"].ToString()

                      string description = element["description"].ToString()

                      string groupId = element["groupId"].ToString()

                      if (description == "ASP.NET v4.0.30319")

                      {

                        

                            element["allowed"] = true

                        

                      }

                  }

                  serverManager.CommitChanges()

              }

          }

          catch

          { 

          

          }

      }

       //删除应用程序

        public static bool DeleteVdir(string vDirName)

        {

            try

            {

                ServerManager serverManager = new ServerManager()

                Site mySite = serverManager.Sites["Default Web Site"]

                Microsoft.Web.Administration.Application application = mySite.Applications["/" + vDirName]

                mySite.Applications.Remove(application)

                serverManager.CommitChanges()

                return true

            }

            catch(Exception ex)

            {

                Common.WriteLog(ex.Message)

                return false

            }

        }

//添加应用程序,参数:vdir:应用程序名如 abc, phydir:物理路径 如 d:\xxx\www

        public static bool  CreateVdir(string vdir, string phydir)

        {

            try

            {

                ServerManager serverManager = new ServerManager()

                Site mySite = serverManager.Sites["Default Web Site"]

                mySite.Applications.Add("/" + vdir, phydir)

                serverManager.CommitChanges()

                return true

            }

            catch (Exception ex)

            {

                Common.WriteLog(ex.Message)

            

            }

            return false

        }

//删除应用程序池

        public static void DeleteAppPool(string appPoolName)

        {

            try

            {

              

                ServerManager serverManager = new ServerManager()

                ApplicationPool apppool = serverManager.ApplicationPools[appPoolName]

                serverManager.ApplicationPools.Remove(apppool)

                serverManager.CommitChanges()

            }

            catch(Exception ex)

            {

                Common.WriteLog(ex.Message)

            

            }

        }

//添加应用程序池,添加之前先删除

        public static void CreateAppPool( string appPoolName)

        {

            DeleteAppPool(appPoolName)

            try

            {

                ServerManager serverManager = new ServerManager()

                serverManager.ApplicationPools.Add(appPoolName)

                ApplicationPool apppool = serverManager.ApplicationPools[appPoolName]

                apppool.ManagedPipelineMode = ManagedPipelineMode.Integrated

                apppool.Enable32BitAppOnWin64 = true

                apppool.ManagedRuntimeVersion = "v4.0"

                serverManager.CommitChanges()

                apppool.Recycle()

            }

            catch(Exception ex)

            {

                Common.WriteLog(ex.Message)

            

            }

        }

//将站点分配到应用程序池

     public   static void AssignVDirToAppPool(string vdir, string appPoolName)

        {

            try

            {

                ServerManager serverManager = new ServerManager()

                Site site = serverManager.Sites["Default Web Site"]

                site.Applications["/" + vdir].ApplicationPoolName = appPoolName

                serverManager.CommitChanges()

            }

            catch(Exception ex)

            {

                Common.WriteLog(ex.Message)

            }

           

        }

 

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7701782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存