使用ServerManager在应用程序中创建应用程序 [英] Using ServerManager to create Application within Application

查看:721
本文介绍了使用ServerManager在应用程序中创建应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用ServerManager(Microsoft.Web.Administration.dll)在IIS 7的网站中创建应用程序。
我需要在此应用程序中创建一个应用程序或将虚拟目录转换为应用程序像iis管理器功能右键单击 - >转换为应用程序)
这是怎么回事?我发现很少有关于这个lib的文档,没有一个提到这个特定的功能。
感谢。

解决方案

这样做的方法是操作 Site.Applications 集合,它是您网站中所有应用程序的扁平树。



为了这些例子,我们假设一个名为MySite的网站,其中的内容位于本地硬盘上: d :\ mysite\www 。网站的IIS号码是 3 ,网站位于自己的应用程序池也称为MySite。







首先,我们得到要添加应用程序的网站,我们将使用变量 site 整个:

  //获取我的网站
网站site = serverManager.Sites.First(s = > s.Id == 3);

根/应用程序



每个网站都有一个root应用程序。如果我们打开%systemroot%\windows\system32\inetsrv\config 中的 applicationHost.config 找到我们网站的< site> 节点,我们将看到以下内容:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\mysite\www/>
< / application>
< / site>

每个< site> < application> 。总有至少一个应用程序定义根应用程序 /



applicationPool 属性指定要使用的应用程序池。



请注意,有一个子元素: virtualDirectory



每个应用程式都有一个子集合 virtualDirectory 并且在该集合中通常至少有一个元素。



根应用程序中的默认< virtualDirectory> 告诉我们:




  • 这是根( path =/)和

  • 它在物理上位于文件系统上 d:\MySite\www physicalPath =d:\MySite\www / code>)



路径 c $ c> virtualDirectory 相对于在父应用程序路径中指定的路径



添加虚拟目录



如果我们要添加虚拟目录映射到文件系统上其他位置的网站根目录:

 应用程序rootApp = site.Applications.First (a => a.Path ==/); 
rootApp.VirtualDirectories.Add(/ vdir_1,@D:\MySite\other_content);
serverManager.CommitChanges();

生成的配置如下:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< / application>
< / site>

我们在IIS管理器中看到这个:





添加将虚拟目录更改为现有的虚拟目录:



如果我们要将子虚拟目录添加到 vdir1 我们会:

  root.VirtualDirectories.Add(/ vdir_1 / sub_dir1,@d:\MySite \more_content); 

这会导致:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< / application>
< / site>

IIS管理员:





添加时需要记住几个事项虚拟目录:




  • 如上所述,虚拟路径应用 path

  • 虚拟路径的最后一部分 / vdir_1 ... / sub_dir1 成为虚拟目录的名称

  • 将多个虚拟目录指向同一物理文件夹是完全合法的

  • 除了虚拟目录路径的名称部分之外,路径的所有部分作为物理路径或作为网站根目录( d:\ MySite \www )中的虚拟路径存在。即 path 应该能够覆盖已经存在的东西,否则虚拟目录在IIS管理器中将不可见。



例如,关于最后一点,我们没有一个名为 / vdir_2 的物理文件夹或虚拟目录,代码完全合法:

  root.VirtualDirectories.Add(/ vdir_2 / sub_dir1,@d:\MySite\\ \\ even_more_content); 

您不会看到 / vdir_2 / sub_dir1 显示在IIS管理器,但它是合法的,你可以实际浏览到它。我们也可以在 applicationHost.config 中看到它:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< virtualDirectory path =/ vdir_2 / sub_dir1physicalPath =D:\MySite\even_more_content/>
< / application>
< / site>

将文件夹转换为应用程序



如果您刚刚将ASP.NET应用程序上传到您的站点中的 / app_1 文件夹,并且想将其转换为自己的应用程序,我们这样做:

 应用程式app = site.Applications.Add(/ app_1,@d:\MySite\www\ app_1); 
//设置应用程序池,否则它将运行在DefaultAppPool
app.ApplicationPoolName =MySite;
serverManager.CommitChanges();

applicationHost.config 已添加新< application> 元素:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< virtualDirectory path =/ vdir_2 / sub_dir1physicalPath =D:\MySite\even_more_content/>
< / application>
< application path =/ app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\www\app_1/>
< / application>
< / site>

在IIS中,我们看到:



img src =https://i.stack.imgur.com/3NQVd.jpgalt =alt text>



点击转换为应用程序。



将应用程序添加到现有应用程序将应用程序添加为现有应用程序的子代非常简单。假设我们要让 / app_1 的子应用程式 / app_1 / sub_app_1





我们会这样做:

  Application app = 
site.Applications.Add(/ app_1 / sub_app_1,@ d:\mysite\www\app_1\sub_app_1);
app.ApplicationPoolName =MySite;

生成的配置如下所示:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< virtualDirectory path =/ vdir_2 / sub_dir1physicalPath =D:\MySite\even_more_content/>
< / application>
< application path =/ app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\www\app_1/>
< / application>
< application path =/ app_1 / sub_app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\mysite\www\app_1\sub_app_1/>
< / application>
< / site>

在IIS中:





将虚拟目录添加到应用程序: / strong>



现在,如果我们要为这个应用程序添加一个虚拟目录,我们将:

  Application app = site.Applications.First(a => a.Path ==/ app_1); 
app.VirtualDirectories.Add(/ vdir_1,@d:\MySite\other_content);

applicationHost.config 已添加新< virtualDirectory> 元素:

  name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< virtualDirectory path =/ vdir_2 / sub_dir1physicalPath =D:\MySite\even_more_content/>
< / application>
< application path =/ app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\www\app_1/>
< virtualDirectory path =/ vdir_1physicalPath =d:\MySite\other_content/>
< / application>
< / site>

在IIS中我们看到:



img src =https://i.stack.imgur.com/T0bFC.jpgalt =alt text>



同样重要的是要注意,虚拟路径 / vdir1 总是相对于包含应用程序的路径。



到应用程序:



如果我们想转换刚创建的虚拟目录( / app_1 / vdir1 )到应用程序?我们需要两个步骤:

  //获取应用程序
应用程序app_1 = site.Applications .First(a => a.Path ==/ app_1);
//查找虚拟目录
VirtualDirectory vdir_1 = app_1.VirtualDirectories.First(v => v.Path ==/ vdir_1);
//从app_1中删除它
app_1.VirtualDirectories.Remove(vdir_1);
//创建我们的应用程序
应用程序vdir_1_app = site.Applications.Add(/ app_1 / vdir_1,vdir_1.PhysicalPath);
//设置应用程序池,否则它将在DefaultAppPool中运行
vdir_1_app.ApplicationPoolName =MySite;
serverManager.CommitChanges();

结果 applicationHost.config

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< virtualDirectory path =/ vdir_2 / sub_dir1physicalPath =D:\MySite\even_more_content/>
< / application>
< application path =/ app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\www\app_1/>
< / application>
< application path =/ app_1 / vdir_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\other_content/>
< / application>
< / site>

在IIS管理器中,我们看到:





将应用程式新增至现有虚拟目录:



如果我们要将应用程序添加到虚拟目录,会发生什么?在这个例子中,我们将添加一个应用程序到我们之前创建的虚拟目录 / vdir_1 / sub_dir1

  Application app = 
site.Applications.Add(/ vdir_1 / sub_dir1 / app_2,@d: \mysite\other_content);
app.ApplicationPoolName =MySite;
serverManager.CommitChanges();

生成的配置如下所示:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< virtualDirectory path =/ vdir_2 / sub_dir1physicalPath =D:\MySite\even_more_content/>
< / application>
< application path =/ app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\www\app_1/>
< / application>
< application path =/ app_1 / vdir_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\other_content/>
< / application>
< application path =/ vdir_1 / sub_dir1 / app_2applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\mysite\other_content/>
< / application>
< / site>

在IIS管理器中,我们看到:





转换现有儿童将文件夹导入应用程序:



最后,我们要将 / other_apps / sub_app_1 到应用程序中:





我们的代码如下所示:

  Application app = 
网站。 Applications.Add(/ other_apps / sub_app_1,@d:\mysite\other_content);
app.ApplicationPoolName =MySite;
serverManager.CommitChanges();

生成的配置:

 < site name =MySiteid =3> 
< application path =/applicationPool =MySite>
< virtualDirectory path =/physicalPath =D:\MySite\www/>
< virtualDirectory path =/ vdir_1physicalPath =D:\MySite\other_content/>
< virtualDirectory path =/ vdir_1 / sub_dir1physicalPath =D:\MySite\more_content/>
< virtualDirectory path =/ vdir_2 / sub_dir1physicalPath =D:\MySite\even_more_content/>
< / application>
< application path =/ app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\www\app_1/>
< / application>
< application path =/ app_1 / vdir_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\MySite\other_content/>
< / application>
< application path =/ vdir_1 / sub_dir1 / app_2applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\mysite\other_content/>
< / application>
< application path =/ other_apps / sub_app_1applicationPool =MySite>
< virtualDirectory path =/physicalPath =d:\mysite\other_content/>
< / application>
< / site>

在IIS管理员中:





希望这有助于解释网站之间的关系,应用程序和虚拟目录。


I'm using ServerManager (Microsoft.Web.Administration.dll) to create an Application within a website on IIS 7. I need to create an application within this application or convert a virtual directory to an application (like the iis manager feature right-click -> convert to application) How is this doable? I found very little documentation regarding this lib, and none of it referred to this particular functionality. Thanks.

解决方案

The way to do this is to manipulate the Site.Applications collection which is a flattened tree of all the applications in your site.

For the sake of these examples we'll assume a site called "MySite" where the content is located on the local hard disk at: d:\mysite\www. The site's IIS number is 3 and the site resides in its own application pool also called "MySite".

We'll also assume the following folder structure for the site

To start with we get the site we want to add an application to, we'll use the variable site throughout:

// Get my site
Site site = serverManager.Sites.First(s => s.Id == 3);

The root "/" application:

Every site has a "root" application. If we open applicationHost.config located in %systemroot%\windows\system32\inetsrv\config and locate the <site> node for our site we see the following:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\mysite\www" />
  </application>
</site>

Each <site> contains a collection of <application>'s. There will always be at least one application which defines the root application, /.

The applicationPool attribute specifies which application pool to use.

Note that that there is a single child element: virtualDirectory.

Every application has a child collection of virtualDirectory elements and there will usually be at least one element in this collection.

The default <virtualDirectory> within the root application tells us:

  • this this is the root (path="/") and
  • that it's physically located on the file system at d:\MySite\www (physicalPath="d:\MySite\www").

The path of each virtualDirectory is relative to the path specified in the parent application path.

Adding a Virtual Directory:

If we wanted to add a virtual directory to the "site root" mapped to somewhere else on the filesystem we'd do:

Application rootApp = site.Applications.First(a => a.Path == "/");
rootApp.VirtualDirectories.Add("/vdir_1", @"D:\MySite\other_content");
serverManager.CommitChanges();

The resultant configuration looks like:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
  </application>
</site>

And we see this in IIS Manager:

Adding a Virtual Directory to an existing Virtual Directory:

If we wanted to add a child virtual directory to vdir1 we'd do:

root.VirtualDirectories.Add("/vdir_1/sub_dir1", @"d:\MySite\more_content");

this results in:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
  </application>
</site>

IIS Manager:

There's a couple things to keep in mind when adding virtual directories:

  • As mentioned, the virtual path is always relative to the parent application path
  • The last part of a virtual path e.g. /vdir_1 and .../sub_dir1 becomes the name of the virtual directory
  • It's perfectly legal to have more than one virtual directory point to the same physical folder
  • With the exception of the name part of a virtual directory path, all parts of the path should exist either as physical paths or as virtual paths within the website root (d:\MySite\www). i.e. the path should be able to overlay something that is already there otherwise a virtual directory won't be visible in IIS manager.

Regarding that last point, for example, we don't have a physical folder or virtual directory called /vdir_2 but the following code is perfectly legal:

root.VirtualDirectories.Add("/vdir_2/sub_dir1", @"d:\MySite\even_more_content");

You won't see /vdir_2/sub_dir1 show up in IIS manager but it is legal and you can actually browse to it. We can also see it in applicationHost.config:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
    <virtualDirectory path="/vdir_2/sub_dir1" physicalPath="D:\MySite\even_more_content" />
  </application>
</site>

Convert Folder to Application:

If you just uploaded an ASP.NET application to the /app_1 folder in your site and you want to turn this into its own Application we do this:

Application app = site.Applications.Add("/app_1", @"d:\MySite\www\app_1");
// set application pool, otherwise it'll run in DefaultAppPool
app.ApplicationPoolName = "MySite";
serverManager.CommitChanges();    

In applicationHost.config we can see a new <application> element has been added:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
    <virtualDirectory path="/vdir_2/sub_dir1" physicalPath="D:\MySite\even_more_content" />
  </application>
  <application path="/app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\www\app_1" />
  </application>
</site>

In IIS we see:

This is the equivalent of doing right-click "Convert to Application".

Add Application to Existing Application:

Adding an application as a child of an existing application is very simple. Say we want to make /app_1/sub_app_1 a sub application of /app_1:

We would simply do:

Application app = 
  site.Applications.Add("/app_1/sub_app_1", @"d:\mysite\www\app_1\sub_app_1");
app.ApplicationPoolName ="MySite";

The resultant configuration would look like:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
    <virtualDirectory path="/vdir_2/sub_dir1" physicalPath="D:\MySite\even_more_content" />
  </application>
  <application path="/app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\www\app_1" />
  </application>
  <application path="/app_1/sub_app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\mysite\www\app_1\sub_app_1" />
  </application>
</site>

In IIS:

Add Virtual Directory to Application:

Now if we wanted to add a virtual directory to this application we would do:

Application app = site.Applications.First(a => a.Path == "/app_1");
app.VirtualDirectories.Add("/vdir_1", @"d:\MySite\other_content");

In applicationHost.config we can see a new <virtualDirectory> element has been added:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
    <virtualDirectory path="/vdir_2/sub_dir1" physicalPath="D:\MySite\even_more_content" />
  </application>
  <application path="/app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\www\app_1" />
    <virtualDirectory path="/vdir_1" physicalPath="d:\MySite\other_content" />
  </application>
</site>

In IIS we see:

Again it is important to note that the virtual path /vdir1 is always relative to the path of the containing application.

Convert Existing Virtual Directory to Application:

What if we wanted to convert the virtual directory we just created (/app_1/vdir1) to an application? We'd need to do this in two steps:

// Get the application
Application app_1 = site.Applications.First(a => a.Path == "/app_1");
// Find the virtual directory
VirtualDirectory vdir_1 = app_1.VirtualDirectories.First(v => v.Path == "/vdir_1");
// Remove it from app_1
app_1.VirtualDirectories.Remove(vdir_1);
// Create our application
Application vdir_1_app = site.Applications.Add("/app_1/vdir_1", vdir_1.PhysicalPath);
// set application pool, otherwise it'll run in DefaultAppPool
vdir_1_app.ApplicationPoolName = "MySite";
serverManager.CommitChanges();    

The resultant applicationHost.config looks like:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
    <virtualDirectory path="/vdir_2/sub_dir1" physicalPath="D:\MySite\even_more_content" />
  </application>
  <application path="/app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\www\app_1" />
  </application>
  <application path="/app_1/vdir_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\other_content" />
  </application>
</site>

In IIS Manager we see:

Add Application to Existing Virtual Directory:

What happens if we want to add an application to a virtual directory, how does that work? In this example we'll add an application to the virtual directory /vdir_1/sub_dir1 which we created earlier.

Application app = 
   site.Applications.Add("/vdir_1/sub_dir1/app_2", @"d:\mysite\other_content");
app.ApplicationPoolName = "MySite";
serverManager.CommitChanges();

The resultant config looks like:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
    <virtualDirectory path="/vdir_2/sub_dir1" physicalPath="D:\MySite\even_more_content" />
  </application>
  <application path="/app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\www\app_1" />
  </application>
  <application path="/app_1/vdir_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\other_content" />
  </application>
  <application path="/vdir_1/sub_dir1/app_2" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\mysite\other_content" />
  </application>
</site>

And in IIS manager we see:

Convert Existing Child Folder into an Application:

As a final example, we want to turn /other_apps/sub_app_1 into an application:

Our code looks like:

Application app = 
   site.Applications.Add("/other_apps/sub_app_1", @"d:\mysite\other_content");
app.ApplicationPoolName="MySite";
serverManager.CommitChanges();

The resultant config:

<site name="MySite" id="3">
  <application path="/" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="D:\MySite\www" />
    <virtualDirectory path="/vdir_1" physicalPath="D:\MySite\other_content" />
    <virtualDirectory path="/vdir_1/sub_dir1" physicalPath="D:\MySite\more_content" />
    <virtualDirectory path="/vdir_2/sub_dir1" physicalPath="D:\MySite\even_more_content" />
  </application>
  <application path="/app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\www\app_1" />
  </application>
  <application path="/app_1/vdir_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\MySite\other_content" />
  </application>
  <application path="/vdir_1/sub_dir1/app_2" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\mysite\other_content" />
  </application>
  <application path="/other_apps/sub_app_1" applicationPool="MySite">
    <virtualDirectory path="/" physicalPath="d:\mysite\other_content" />
  </application>
</site>

In IIS manager:

Hope this helps explain the relationship between sites, applications and virtual directories.

这篇关于使用ServerManager在应用程序中创建应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆