一个IIS WebSite可以承载多个不同ASP.NET版本的Web应用程序吗?

Sal*_*mer 2 asp.net iis web-config

我在IIS中有一个网站,并且我希望将2、3.5和4版本的应用程序托管在同一IIS网站下。这可能吗?

认为这就像修改web.config一样容易。到目前为止,我已经在根上创建了一个ASP.NET 3.5站点。然后,我在下面创建一个目录并部署了一个ASP.NET 2.0站点。到目前为止,当我查看3.5站点时,它的显示效果很好。但是,在2.0站点浏览目录的default.aspx时,得到:

说明:在解析服务于此请求所需的资源期间发生错误。请查看以下特定的解析错误详细信息,并适当地修改您的源文件。

有什么想法吗?

谢谢。

更新以显示完整错误(不确定是否有帮助)

在此处输入图片说明

Jim*_*mmy 5

每个Web应用程序都需要单独的IIS应用程序。巧合的是,单独的应用程序可以具有单独的应用程序池,而应用程序池又可以具有单独的.NET Framework版本。

但这不是你的问题

对于您的应用程序,.NET 2.0 Web应用程序和.NET 3.5 Web应用程序使用相同版本的.NET(CLR 2.0)时会遇到问题。您看到的问题是因为该子应用没有被标记为单独的应用,所以运行时在错误的位置寻找程序集来加载您的类型。

您的网站内容可能看起来像这样:

root (~/)
- bin
  * app.dll
- sub-app
  - bin
    * subapp.dll
Run Code Online (Sandbox Code Playgroud)

子应用程序运行时,它尝试加载类型Second.Namespa._Default,但程序集路径为〜/ bin(根目录/ bin),其中不包含正确的程序集。如果在IIS中将子应用程序标记为自己的应用程序,则会得到以下信息:

root (~/)
- bin
  * app.dll
- sub-app (~/ again for anything below)
  - bin
    * subapp.dll
Run Code Online (Sandbox Code Playgroud)

现在加载Second.Namespa._Default将查找〜/ bin(现在为sub-app / bin),并找到正确的程序集并能够加载类型。


Mic*_*ael 5

一个网站可以在一个IIS上托管多个应用程序。请执行下列操作:

1.)将网站添加到您的IIS

2.)转到硬盘/ ftp服务器上的物理文件夹,然后定义应用程序应在网站中存放的文件夹,例如:[] =文件夹()=文件

=====> [root]

==========>(web.config)

==========> [bin]

==========> [网站]

==========> [图像]

==========> [应用程序1]

===================>(web.config)(清除和覆盖继承的设置)

==================== [bin]

===================> [站点]

===================> [图像]

==========> [应用程序2]

===================>(web.config)(清除和覆盖继承的设置)

==================== [bin]

===================> [站点]

===================> [图像]

3.)返回IIS管理器,然后选择“应用程序池”和“添加新的应用程序池”。将其称为“应用程序1”。重复它,并调用第二个“应用程序2”

4.)在左侧选择您的网站,然后浏览刚刚创建的文件夹。右键单击文件夹“应用程序1”,然后选择“转换为应用程序”。对文件夹“应用程序2”执行相同的操作。每次执行此操作时,请从步骤3中选择应用程序池。

5.)你准备好了。现在,将代码放在“应用程序1”或“应用程序2”的“ bin”文件夹中时,它被视为另一个不同的应用程序。

6.)请注意,“应用程序1或2”上方的文件夹中的所有web.config属性都是继承的。您可以使用“ clear”标签或“ remove”和“ add”标签,在文件夹“ application 1或2”内使用自己的web.config覆盖它们。您很有可能为网站的根文件夹定义了web.config。此web.config将由您的应用程序继承。