2011-11-10 79 views
42

可能重复:
Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive无法识别的属性“targetframework”

首先,让我说,我知道,这个问题已经被问了几次在这个网站 - 但所有这些答案都不能解决我的问题。

我看到了以下问题,当我尝试在IIS7添加一个新的托管处理程序:

无法识别的属性“targetFramework”。请注意,属性名称 区分大小写。

环境是安装了IIS7的Windows Server Enterprise 2008 SP1。

我的应用程序使用.NET 4.0。在.NET框架IIS之后安装:

我试过/检查以下内容:

  • 我的应用程序池使用.NET 4.0(我安装的.NET 4.0一个版本,没有公测的等)
  • 确保.NET 4.0使用'aspnet_regiis.exe -iru'正确注册IIS。
  • 回收应用程序池,重新启动机器。
  • 完全卸载.NET 4.0,然后重新安装它。
  • 删除了'targetFramework'属性 - 这只会导致其他地方崩溃。

对我来说,看起来IIS仍然以某种方式引用.NET的早期版本,尽管IIS中的应用程序池告诉我他们正在使用.NET 4.0。

我的网站加载正常,但由于此问题,我无法设置我的自定义图像处理程序。

我非常感谢任何建议。

谢谢。

UPDATE

这是疯了..我已经完全被环境从头开始重建:

  • 下载 'Windows服务器企业不超V SP1' 从MSDN。
  • 安装.NET 4.0
  • 安装ASP.NET MVC 3
  • 添加 'Web服务器' 角色 - 确保应用程序池使用.NET 4.0
  • 部署我的项目

同样的错误当我尝试添加自定义hanlder映射时发生。我要么做的不正确/完全愚蠢或者在这个设置中IIS7存在一些问题。即使我的应用程序池设置为使用.NET 4.0,IIS也无法识别.NET 4.0中的'targetFramework'属性。

如果我使用'aspnet_regiis -lv'命令,它告诉我只有.NET 4向IIS注册。

+0

您没有提及尝试这种解决方案:http://stackoverflow.com/questions/5420094/unrecognized-attribute-targetframework-in- 4-0站点与2-0子文件夹 – Rob

+0

我曾看过 - 我的IIS版本是7,虚拟目录是定义使用.NET 4.0(至少根据IIS)。在这一点上,我正在考虑从头开始重建整个环境。 –

+0

什么是应用程序池中显示的确切的.NET版本号?它是'4.0.21006.1'吗?你也可以展示你的web.config是怎么样的? –

回答

62

注册与IIS的框架是对我工作:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i 
+1

非常感谢,它也适用于我。 –

+4

注意'''那里,我误以为它是一个完整的路径。 –

+1

我真的不明白为什么这应该是必要的,当你将asp.net作为一个选定的功能安装:/ – Ortund

29

您是否在“默认网站”网站节点下设置了您的网站,或者您是否在IIS中创建了新网站?如果您创建了新网站,请尝试访问“默认网站”并将其应用程序池从“DefaulAppPool”更改为“Asp.Net v4.0”。我知道“默认网站”应该与您的网站无关,但在某些情况下,我已阅读这些内容有助于解决问题。此外,为了让您的自定义图像处理程序正常工作,请尝试使用配置自由的HTTP处理程序,并扩展.ashx文件。这样你可以让你的图像处理程序工作(直到你解决这个问题),而无需在IIS中注册它。

+0

这是IIS在不同端口上运行的独立站点。我的默认网站在同一个.NET 4.0应用程序池下运行。我刚刚注意到的一件事是,在IIS-> .NET编译 - >常规 - >程序集,所有程序集似乎指向版本2.0 –

+1

我也有大多数IIS >> .NET编译>>常规>>指向组件版本2.0,而其他一些则指向3.0和3.5。这只是识别与.net版本构建的组件。我不确定这与你的问题有什么关系。 – bbeny

+0

谢谢!这对我有效。绝对疯狂。这是一个错误? –

相关问题