我有一台运行 IIS Express 7.5 并安装了 .NET 3.5 和 .NET 4.0 的 Windows 2003 服务器。服务器上的站点使用 2.0 版应用程序池已经有一段时间了。我们想使用 4.0 版应用程序池。作为概念证明,我将一个项目转换为 .NET 4.0 并开始在 IIS Express 中托管它。这是我的 applicationhost.config 文件中的站点部分:
<sites>
<site name="ShopServer80" id="1" serverAutoStart="true">
.
.
.
<application path="/Old2.0Application">
<virtualDirectory path="/" physicalPath="c:\WhereMyProjectLives"/>
</application>
.
.
.
</site>
<siteDefaults>
<logFile logFormat="W3C" enabled="false" directory="%IIS_USER_HOME%\Logs"/>
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="false" maxLogFileSizeKB="1024"/>
</siteDefaults>
<applicationDefaults applicationPool="Clr2IntegratedAppPool"/>
<virtualDirectoryDefaults allowSubDirConfig="true"/>
</sites>
我只想使用列出的一个应用程序并使用Clr4IntegratedAppPool
所有其他应用程序Clr2IntegrationAppPool
,所以我添加了属性applicationPool
:
<application path="/New4.0Application" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\WhereMyProjectLives"/>
</application>
此时,我收到BadImageFormatException
:无法加载文件或程序集“ProjectName”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。. 既然我正在为应用程序指定Clr4IntegratedAppPool
应用程序池,那么这个问题不应该得到解决吗?加载的运行时应该是 4.0,对吧?