尝试在IIS7的默认应用程序池中部署。net 3.5网站,并将框架部分设置为4.0,我得到以下错误。

有一个副本 包含。扩展/脚本/ scriptResourceHandler”部分 定义的。

对这些冒犯的行进行评论也无济于事。你能给我点建议吗?


当前回答

在我的例子中,它发生在我将整个解决方案(使用一个名为Target Framework Migrator的扩展)转换到4.6.2之后,但最终取消了更改并返回到3.5(解决方案由TFS版本控制)。 为了解决这个问题,我将有问题的项目(使用IIS Express运行)转换为4.6.2,然后再转换回3.5。

其他回答

这个错误消息似乎出现在各种情况下。

在我的例子中,在我的应用程序的Web之上。配置文件我有一个额外的Web。配置文件在根文件夹(C:\Inetpub\www.root)。可能在经过一些测试后,我已经完全忘记了它,也不知道问题出在哪里。

把它取出来就解决了我的问题。

如果你的计划是部署到一个在。net 4.0中运行应用程序池的IIS,你将需要清理web。包括所有指向.net 3.5的section定义。失败的原因是这些节定义已经包含在根web中了。.net 4.0中的config(参见%windir%\microsoft.net\framework\v4.0.30319\config\machine.config),其中包含已经声明的所有system.web.extensions。

另一个快速修复方法是将应用程序池设置为2.0,就像您的开发机器所显示的那样。

在我的例子中,我有两个不同的应用程序共享同一个应用程序池。第一个使用的是。net4.5框架,而新的使用的是2.0。当我把第二个应用程序更改为它自己的应用程序池时,它开始工作很好,没有更改web.config。

在我的例子中,它发生在我将整个解决方案(使用一个名为Target Framework Migrator的扩展)转换到4.6.2之后,但最终取消了更改并返回到3.5(解决方案由TFS版本控制)。 为了解决这个问题,我将有问题的项目(使用IIS Express运行)转换为4.6.2,然后再转换回3.5。

我的决心有点愚蠢。

我安装了一个。net 3.5 创建另一个应用程序池并选择。net 3.5(它说2.0.5077 in 下拉菜单) 把我的网站加入了应用程序池 回收旧的和新的水池,工地开始工作。

结果是我没有安装3.5,尽管windows功能的开关说我安装了,并创建了另一个应用程序池来使用。我希望这能帮助到其他人。