asp.net - 一个 IIS 网站可以托管多个不同 ASP.NET 版本的 Web 应用程序吗?

标签 asp.net iis web-config

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

认为它会像修改 web.config 一样简单。到目前为止,我在根目录上创建了一个 ASP.NET 3.5 站点。然后我在下面创建了一个目录并部署了一个 ASP.NET 2.0 站点。到目前为止,当我查看 3.5 站点时,它看起来很好。但是,2.0 站点,当我浏览到目录的 default.aspx 时,我得到:

说明:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息并适当修改您的源文件。

有什么想法吗?

谢谢。

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

enter image description here

最佳答案

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

但这不是你的问题

就您的应用而言,您在使用相同版本的 .NET (CLR 2.0) 的 .NET 2.0 Web 应用和 .NET 3.5 Web 应用时遇到问题。您看到的问题是因为子应用程序未标记为单独的应用程序,因此运行时在错误的位置查找程序集以加载您的类型。

您的网站内容可能如下所示:

root (~/)
- bin
  * app.dll
- sub-app
  - bin
    * subapp.dll

当子应用程序运行时,它试图加载类型 Second.Namespa._Default,但程序集路径是 ~/bin (root/bin),它不包含正确的程序集。如果您在 IIS 中将子应用程序标记为自己的应用程序,您将得到:
root (~/)
- bin
  * app.dll
- sub-app (~/ again for anything below)
  - bin
    * subapp.dll

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

关于asp.net - 一个 IIS 网站可以托管多个不同 ASP.NET 版本的 Web 应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9897890/

相关文章:

javascript - Ajax.BeginForm OnSuccess、onBegin、OnFailure 未触发

c# - 应用程序中的异常服务器错误。编译错误

.net - 在 aspx 页面上提供存储在数据库中的图像

asp.net - IIS 应用程序池崩溃并出现异常 0xc0000005

c# - 在 VS 2005 中如何为 web.config 生成连接字符串?

wcf - (401)未经授权的错误: WCF security/binding

javascript - 如何使用 ajax 触发 aspx.cs 文件中的方法

python - 让 TRAC 在 IIS7 上运行

c# - ASP.NET Core 2.0 Web API IIS 托管和调试

c# - 尽管定义了文件属性,但键值对已添加到 web.config 文件中