首先,我要说的是,我知道这个问题已在本网站上被问过几次 - 但所有这些问题的答案并没有解决我的问题。
当我尝试在 IIS7 中添加新的托管处理程序时,我看到以下问题:
无法识别的属性'targetFramework'。请注意,属性名称是 case-sensitive。
环境是安装了 IIS7 的 Windows Server Enterprise 2008 SP1。
我的应用程序正在使用.NET 4.0. .NET 框架是在 IIS 之后安装的:
我 tried/checked 以下:
-
我的应用程序池正在使用.NET 4.0(我安装了一个版本的.NET 4.0,没有 beta 的 etc.)
-
确保使用“aspnet_regiis.exe -iru”在 IIS 中正确注册了.NET 4.0.
-
回收应用程序池,重新启动计算机。
-
完全卸载.NET 4.0,然后 re-installed 它。
-
删除了'targetFramework'属性 - 这只会导致其他地方崩溃。
对我来说,看起来 IIS 仍然以某种方式引用了以前版本的.NET,即使我在 IIS 中的应用程序池告诉我他们正在使用.NET 4.0.
我的网站加载正常,但由于此问题我无法设置我的自定义图像处理程序。
我非常感谢任何建议。
谢谢。
更新
这很疯狂..我已经完全从头开始重建:
-
从 MSDN 下载“不带 Hyper V SP1 的 Windows Server Enterprise”。
-
安装.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 注册。
2 回答
使用 IIS 注册框架对我有用:
您是否在“默认网站”站点节点下设置了站点,或者是否在 IIS 中创建了新站点?如果您创建了一个新站点,请尝试转到“默认网站”并将其应用程序池从“DefaulAppPool”更改为“Asp.Net v4.0”。我知道“默认网站”应该与您的网站无关,但我在某些情况下已经阅读过,这有助于解决问题。此外,为了使您的自定义图像处理程序工作,请尝试使用带有.ashx 文件扩展名的 configuration-free HTTP 处理程序。这样,您可以使图像处理程序工作(直到您解决此问题),而无需在 IIS 中注册它。