我最近将网站升级到.net 4.0。我更改了应用程序池,几乎所有内容都正常运行。
然而,由于某种原因,位于“admin”子文件夹中且具有自己的web.config的站点的管理部分仍然在2.0下运行。当我左键单击IIS中的子目录并检查属性的ASP.net选项卡时,它获得ASP.NET版本2.0.50727。
如果我点击“编辑配置”,我会收到此错误消息 “尝试读取配置时出现错误。”错误消息是:
无法识别的属性'targetFramework'。请注意,属性名称区分大小写。
受保护的Web配置直接看起来像这样
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
<customErrors mode="Off"></customErrors>
</system.web>
</configuration>
当我尝试导航到管理部分时,我得到“服务器应用程序不可用”,并且应用程序日志中的条目抱怨两个不同的版本。
所有内容都在同一个应用程序池4.0下运行。为什么子文件夹不是4.0,我该如何解决?
答案 0 :(得分:5)
您运行的是哪个版本的IIS?
我的猜测是,在某些时候,您(或其他人)在子文件夹上手动将ASP.NET版本设置为2.0。
它的工作方式...... IIS检查是否未设置该值。如果未设置,则它继承父项的值。一旦明确设置了值,更改父级的值就不会级联到子级。
答案 1 :(得分:2)
听起来您正在使用IIS6,在这种情况下,您必须右键单击子目录并更改ASP.Net版本。
答案 2 :(得分:0)
由于某种原因,IIS 6 Metabase中有一个admin文件夹条目。使用IIS 6 Metabase资源管理器,我能够删除包含指向2.0 asapi .dll的数据的ScriptMaps条目。
这解决了我的问题。