读书人

配置异常-分析器异常消息: 无法识别的

发布时间: 2013-04-07 12:50:11 作者: rapoo

配置错误--分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。

在部署网站的时候,很容易遇到这个一样错误:分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。

错误如图:

配置异常-分析器异常消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写

错误原因:

部署网站时,使用的应用程序池版本不对!

解决方案:

我的应用程序是在.NET 4.0下开发的,所以应用程序池应使用.NET4.0版本。如果您的电脑上没有安装相应版本的框架,下载一个安装上即可。

Win7下更改操作

配置异常-分析器异常消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写

附:IIS应用程序池配置解析《摘抄》

应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

Windows 2003同时支持两种工作模式,默认为IIS 6.0工作进程隔离模式。工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。那么如何设置两种工作模式呢?

启动IIS管理器,右击网站,选择“属性”,打开属性对话框(图1)。在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境中运行,它们是如何进行隔离的呢?Windows 2003新增了应用程序池,工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都可以有不同的配置。因为这些应用程序池直接从内核(而非WWW服务)接收它们的请求,所以性能和可靠性得到了增强。要隔离运行在同一台计算机上但属于不同网站的Web应用程序,需要为每个网站创建单独的应用程序池。

配置异常-分析器异常消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写

图1

配置异常-分析器异常消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写

图2

下面用比较通俗的话解释一下:

1.静态站点用DW设计好后,本地即可查看网页,而动态站点则不同,需要用iis挂接后才能查看。这也是HTML(静态站点)和ASP(动态站点)的不同点之一:HTML不需要调用内存和cpu进行换算,而ASP需要调用内存和cpu进行换算后方可呈现在用户面前。因为ASP需要把程序的代码翻译成服务器可以识别的1和0,再通过IIS的导出生成HTML代码。

2.HTML,对于服务器端几乎无任何负载,因为是直接输出到客户端,客户端的浏览器(如IE)即系HTML代码后,输出成我们所见到的漂亮的网页排版、界面。ASP,服务器端需要分配内存用以解析程序代码成计算机代码,从而输出HTML代码到客户端,最后客户端的IE解析HTML代码成为我们看到的漂亮界面。ASP比HTML多出了一步,服务器对程序代码的处理。

3.应用程序池就是可以看成装载计算机分配给动态网站的内存的容器。如果内存是水,那么应用程序池就是鱼缸,动态网站就是鱼缸中的金鱼。多个动态网站可以存在于同一个应用程序池里,即鱼缸中可以放多条金鱼。当然,如果金鱼多了,鱼缸中的空间有限,金鱼之间就会争抢空间,不是很坚固的鱼缸可能就会破裂,所有金鱼都会受到影响。即是动态网站多了,内存不足,可能会造成内存级别的溢出漏洞,影响所有在那个应用程序池上的动态网站。

4.一般一个动态网站,需要新建一个应用程序池,来分配内存和cpu资源,而不是多个网站存在于同一个应用程序池中。这样做的好处是一个应用程序池对应唯一一个进程,一个进程对应一个PID(在任务管理器中可以查到)。所以如果某个网站出了问题,占用很多cpu,在任务管理器中可以查到。若是多个网站共享一个应用程序池,那么就不能定位是哪个网站出问题了。所以服务器中一般一个网站对应一个应用程序池,当然这要内存足够大作为前提条件。

5.一般而言,内存不是很大的情况下是用一个应用程序池对应多个网站的,共享内存资源可以节约服务器内存。

6.IIS设计的时候,考虑到应用程序可能会在运算途中出错,导致后续的请求不能处理。所以,IIS的应用程序池是有一个自动回收的机制。右键属性可以看到。回收的时候,原来鱼缸的水(内存的数据)会倒掉,重新换新的。

7.当一个IIS服务,只提供一个“站点”(使用80端口),不需设置主机头。

当一个IIS服务,提供n个“站点”(公用80端口),则需要设置n-1个主机头。

当一个IIS服务,提供n个“站点”(各个站点有自己的端口,各不相同),不需设置主机头。

(主机头可以理解为网站的域名)

8.客户端访问网站域名的流程如下:

客户端浏览器发出请求 -> 查找本地PC的DNS(host文件) -> 查找网络上的DNS -> 获得服务器的IP -> 客户端访问目网站 -> 目的网站服务器检查自己所有的网站,看看哪个和客户端提出的域名匹配 -> 若无匹配,则返回错误页面;若匹配,则返回正常网页。

当一个IIS服务,提供n个“站点”(公用80端口),则需要设置n-1个主机头。

IIS 6的核心在于工作进程隔离模式,而应用程序池则是定义工作进程如何进行工作,因此,可以说应用程序池是整个IIS 6的核心。和IIS 5中只能使用单个应用程序池不同,工作在工作进程隔离模式的IIS 6可以创建多个应用程序池,不同的应用程序池之间是完全隔离的,某个应用程序池停止服务时不会影响到其他应用程序池。

在使用应用程序池之前,你应该确定你所需要的应用程序池数量。可能有很多朋友会认为,既然不同的应用程序池之间是完全隔离的,那么我只需要为每个Web站点创建一个应用程序池就可以了。这个办法在IIS服务器上具有较少的Web站点数量时可以使用,但是如果IIS服务器上具有很多Web站点数量,那么这个办法就不适用了,因为不同的应用程序池在被访问时都会创建各自的工作进程,当大量的工作进程并发工作时会消耗大量的系统资源和CPU利用率,反而会降低服务器性能。你应该根据Web站点的重要性、隔离性、所运行代码的安全性和稳定性等来对IIS服务器上所具有的Web站点进行划分,然后根据情况来决定所需要的应用程序池数量。对于那些非常重要的Web站点、需要单独隔离的Web站点、所运行代码稳定性和安全性并不可靠的Web站点配置为使用各自独立的应用程序池,而将其他普通的Web站点配置为使用一个公共的应用程序池。

默认情况下,在安装IIS时会创建一个默认网站并创建一个名为DefaultAppPool的应用程序池为其使用;默认配置下的应用程序池已经可以很好的进行工作,建议你只有在特别需要时才对应用程序池进行配置。

应用程序池配置属性

在IIS管理控制台中展开应用程序池文件夹,然后右击对应的应用程序池,点击属性,你可以在应用程序池的属性中进行以下配置:

回收

在回收标签,你可以设置工作进程的回收方式:

配置异常-分析器异常消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写

读书人网 >.NET Framework

热点推荐