win7推荐先安装iis7,再安装vs2010;若是次序反了,必须注册iis才能够用。
IIS中ASP.NET的版本号此时可选的有1.一、2.0和4.0三个,若是想让IIS把3个版本都集成上,那NET Framework 3种都要安装,默认安装到的是C盘。IIS注册方式以下:
web
解决办法:这问题一般出在先安装 Microsoft .NET Framework 4 才安装 IIS7,这时必须输入如下指令将 ASP.NET 4.0 注册进 IIS7 便可:
编程
解决方法:在新建部署工程时将工程目录设置在项目源程序文件夹外的任意文件夹windows
解决办法:
1> 设置IIS默认页。
2> 检查iis是否设置了匿名可访问。
3> WEB项目对应的目录安全性中添加IUSR及IIS_IUSRS用户的权限。api
当WEBCONFIG文件中设置SESSION存储方式设置为<sessionState mode="StateServer" />这种方式的时候,须要打开计算机管理--服务,开启aspnet_state服务(ASP.NET状态服务) ,若未开启,就会出现如下错误:
数组
Win7旗舰版上安装VS2010旗舰版过程当中提示2908错误,在安装到Macro Tools或TFS模型时提示出错,网上提供两种解决办法:
1> Win7版本必须在7600.16385以上;(安装前请确认系统版本,16385上已成功安装)
2> 先安装VS2010 RC版,而后卸载,而后再安装VS2010 正式版;(未验证是否可行)
浏览器
缘由:这个是由于你的程序某处有错误而产生的。而且IIS没有返回具体产生错误的缘由。
解决办法:设置IIS
1> 在左侧的目录树中选择你的网站,在右边的IIS分类下,找到并打开“ASP”
2> 展开“编译\调试属性”并设置“将错误发送到浏览器”为True
3> 将“启用父路径”选择为True缓存
此问题可能由下列状况引发:安全
错误的完整文本以下:服务器
未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”加载类型“System.ServiceModel.Activation.HttpModule”。网络
说明:在执行当前 Web 请求的过程当中发生未经处理的异常。 有关错误和代码中发出该错误的位置的更多信息,请查看堆栈跟踪。
解决此问题的方法:
在启用了 IIS 7 或 IIS 7.5 而且已安装 .NET Framework 4 的计算机上,卸载 Beta 2 版本会致使未使用的“isapiCgiRestriction”项保留在 applicationHost.config 文件中。 这种状况出如今 Windows Vista、Windows Server 2008 和 Windows 7 上。未使用的项不会影响 Web 服务器的功能。 较高版本的 .NET Framework 4 可安全地安装在同一台计算机上,由于后续安装将会更新“isapiCgiRestriction”项。
解决此问题的方法:
从 applicationHost.config 文件中删除未使用的“isapiCgiRestriction”项。 可是,因为卸载后留下的这些项并不会影响产品功能或安装较高版本的能力,所以此步骤不是必需的。
在安装 .NET Framework 4 后没法安装 .NET Framework 1.0。 必须在安装 .NET Framework 4 以前安装 .NET Framework 1.0。
解决此问题的方法:
未能安装 .NET Framework 4 安装程序。
解决此问题的方法:
参考 .NET Framework 4 安装程序疑难解答指南 (http://go.microsoft.com/fwlink/?LinkId=186690)
卸载 .NET Framework 4 后未完全删除 Windows Presentation Foundation (WPF) 4 字体缓存服务 (Full Framework)。
注意:此问题对 .NET Framework 的 Full Framework 版本和 Client Profile 版本都会产生影响。
解决此问题的方法:
此时应显示“[SC] DeleteService SUCCESS”。
刷新服务控制台后不该显示字体缓存。 若是刷新操做未解决此问题,请从新启动计算机。
在安装 .NET Framework 4 Client Profile 后没法安装 .NET Framework 1.0。 必须在安装 .NET Framework 4 Client Profile 以前安装 .NET Framework 1.0。
解决此问题的方法:
卸载 .NET Framework 4 后可能未完全卸载 WPF 字体缓存服务。
尽管 WPF 字体缓存服务在卸载后再也没法使用,但服务控制台中仍会显示“Windows Presentation Foundation 字体缓存 4.0.0.0”服务条目。
在 Windows Vista 和 Windows Server 2008 上,服务控制台“描述”字段将会显示:“<读取描述失败。 错误代码: 2 >”。 在 Windows XP 和 Windows Server 2003 上,“描述”字段仍将会显示正确的字符串。
从新安装 .NET Framework 将会修复此问题。 尚不肯定是否还有任何其余影响。
注意:此问题对 .NET Framework 的 Client Profile 版本和 Full Framework 版本都会产生影响。
解决此问题的方法:
此时应显示“[SC] DeleteService SUCCESS”。
刷新服务控制台后不该显示字体缓存。 若是刷新操做未解决此问题,请从新启动计算机。
未能安装 .NET Framework 4 Client Profile 安装程序。
解决此问题的方法:
参考 .NET Framework 4 安装程序疑难解答指南 (http://go.microsoft.com/fwlink/?LinkId=186690)
在启用了 IIS 7 或 IIS 7.5 而且已安装 .NET Framework 4 的计算机上,卸载 Beta 2 版本会致使未使用的“isapiCgiRestriction”项保留在 applicationHost.config 文件中。 这种状况出如今 Windows Vista、Windows Server 2008 和 Windows 7 上。未使用的项不会影响 Web 服务器的功能。 较高版本的 .NET Framework 4 可安全地安装在同一台计算机上,由于后续安装将会更新“isapiCgiRestriction”项。
解决此问题的方法:
从 applicationHost.config 文件中删除未使用的“isapiCgiRestriction”项。 可是,因为卸载后留下的这些项并不会影响产品功能或安装较高版本的能力,所以此步骤不是必需的。
完全删除此孤立的字体缓存服务的方法:
此时应显示: “[SC] DeleteService SUCCESS”。
若是刷新服务控制台,则此时不该显示字体缓存。 若是刷新服务控制台并未解决此问题,则可能须要从新启动。
(注意:此问题适用于 Full Framework,与适用于 Client Profile 的 877240 自述文件问题相同)
解决此问题的方法:
完全删除此孤立的字体缓存服务的方法:
此时应显示:“[SC] DeleteService SUCCESS”。
若是刷新服务控制台,则此时不该显示字体缓存。 若是刷新服务控制台并未解决此问题,则可能须要从新启动。
从 Vista/XP/w2k3/W2k8 卸载 .NET 4.0 以后,未完全卸载 WPF 字体缓存服务。
尽管 WPF 字体缓存服务在卸载后再也没法使用,但服务控制台中仍会存在并显示“Windows Presentation Foundation 字体缓存 4.0.0.0”服务条目。
在 Vista 和 W2k8 上,服务控制台“描述”字段将会显示:“<读取描述失败。 错误代码: 2 >”。 在 XP/w2k3 上,“描述”字段仍将会显示正确字符串。
从新安装 Framework 将会修复此问题。 尚不肯定是否还有任何其余影响。
注意:Net4 Client Profile 和 NET4 Full Framework 同时存在此问题
解决此问题的方法:
完全删除此孤立的字体缓存服务的方法:
此时应显示:“[SC] DeleteService SUCCESS”。
若是刷新服务控制台,则此时不该显示字体缓存。 若是刷新服务控制台并未解决此问题,则可能须要从新启动。
(注意:此问题适用于 Client Profile,与适用于 Full Framework 的 888322 自述文件问题相同)。
若是在“系统必备”对话框中选中“从与个人应用程序相同的位置下载系统必备组件”选项,并选择如下任何组件做为系统必备组件,则当使用简体中文或繁体中文版本的 Visual Studio 2010 发布应用程序时,可能会显示生成错误:
对于“Microsoft .NET Framework 4 Client Profile(x86 和 x64)”,系统可能会显示下面的生成错误:
“MSB3152: 系统必备的安装位置未设置为‘组件供应商的网站’,没法在磁盘上找到项‘Microsoft .NET Framework 4 Client Profile (x86 和 x64)’中的文件‘DotNetFX40Client\dotNetFx40LP_Client_x86_x64cs.exe’。 有关详细信息,请参见‘帮助’。”
解决此问题的方法:
若要在简体中文版本中解决此问题,请按如下步骤操做:
<String Name=”Culture”>zh-chs</String>
若要在繁体中文版本中解决此问题,请按如下步骤操做:
<String Name=”Culture”>zh-cht</String>
若是在“系统必备”对话框中选中“从组件供应商的网站上下载系统必备组件”选项,并选择如下任何组件做为系统必备组件,则当使用简体中文或繁体中文版本的 Visual Studio 2010 发布应用程序时,可能会没法安装简体中文或繁体中文语言包:
解决此问题的方法:
若要在简体中文版本中解决此问题,请按如下步骤操做:
<String Name=”Culture”>zh-chs</String>
若要在繁体中文版本中解决此问题,请按如下步骤操做:
<String Name=”Culture”>zh-cht</String>
在运行 Windows 7 而且已启用 IIS 7.5 的客户端或服务器计算机上安装 .NET Framework 4 以后,用于为不一样应用程序池配置 ASP.NET 配置文件的选项中止工做。 发生这种状况的缘由是,安装 .NET Framework 4 后致使公共语言运行时 (CLR) 初始化的默认行为有了轻微改变。 当安装 .NET Framework 4 时,Windows 7 上的 IIS 7.5 将调入本机 ASP.NET 4 DLL 以执行 CLR 初始化,而此初始化逻辑不容许使用不一样的配置文件。
解决此问题的方法:
因为 .NET Framework 4 和 IIS 7.5 的 CLR 初始化逻辑基本相同(配置文件反作用除外),所以您能够从新配置 IIS 7.5,使其再也不将 CLR 初始化委托给 ASP.NET 4。能够按如下两种方式执行此操做。
方法 1
----------
在 IIS 7.5 applicationHost.config 文件中,将“managedRuntimeLoader”特性的默认值设置为一个空字符串,如如下示例所示:
<applicationPools>
<applicationPoolDefaults managedRuntimeLoader="" />
</applicationPools>
方法 2
----------
在 IIS 7.5 IIS_Schema.xml 文件中,将名为“managedRuntimeLoader”的特性中的“defaultValue”设置为一个空字符串。 例如,该特性最初可能相似于如下示例:
<attribute name="managedRuntimeLoader" type="string" defaultValue="webengine4.dll" />
将该特性更改成如下标记:
<attribute name="managedRuntimeLoader" type="string" defaultValue="" />
在 Windows XP 和 Windows Server 2003(全部版本)上,若是您在从 IIS 中注销 ASP.NET 4 后从新注册它,IIS MMC 会在 ASP.NET 选项卡上的 ASP.NET 版本列表中显示空值。 下列步骤序列将致使出现此问题:
解决此问题的方法:
在 IIS MMC 的 ASP.NET 版本列表中,手动选择所需的 ASP.NET 版本,而后单击“应用”按钮。
因为 IIS 辅助进程没有对 Windows 临时目录 (%WINDOWS%\Temp) 的写权限,Windows Vista、Windows Server 2008 和 Windows 7 上的某些 ASP.NET 编译任务可能会失败。 在尝试编译依赖于 WSDL 文件的 Web 服务引用等项目时,您可能会看到诸如“分析器错误消息: 没法生成临时类”这样的错误。
若是计算机上启用了 IIS 而且安装了 .NET Framework 4,但还没有启用 ASP.NET 和 .NET 扩展性的功能,则会出现此错误。
解决此问题的方法:
方法 1
----------
为 IIS 辅助进程账户显式授予对于 Windows 临时目录 (%WINDOWS%\Temp) 的写权限。 执行此操做的一种方法是,对一个包含辅助进程账户的组(如 IIS_IUSRS 组)授予写访问权限。
方法 2
---------
启用 ASP.NET 和 .NET 扩展性的功能。 在 Windows 的“控制面板”中打开“程序”,而后在“程序和功能”下单击“打开或关闭 Windows 功能”。 在“Windows 功能”对话框中,依次打开“Internet Information Services”、“万维网服务”和“应用程序开发功能”节点。 启用如下功能:
.NET 扩展性
ASP.NET
能够经过使用 aspnet_compiler.exe 命令行工具来预编译 ASP.NET 网站。 若是使用密钥对生成的程序集进行签名,则能够在 GAC 中而不是网站的 Bin 文件夹中部署这些程序集。
在 ASP.NET 4 中,若是以部分信任运行的网站尝试从 GAC 中加载程序集,则将引起“System.Security.SecurityException”异常。 出现这种状况的缘由是,默认状况下 ASP.NET 4 使用比早期版本的 ASP.NET 新的代码访问安全性 (CAS) 实现。 在新的 CAS 实现中,必须使用“SecurityTransparent”特性显式标记在 GAC 中部署的预编译和经签名的程序集。
解决此问题的方法:
方法 1
--------
在编译程序集以前,先使用“SecurityTransparent”特性对其进行标记,如如下示例所示:
[assembly:System.Security.SecurityTransparentAttribute]
方法 2
--------
按照“如何:为预编译网站建立带有版本的程序集”(http://msdn.microsoft.com/en-us/library/ms228042.aspx) 一文所述,向网站的 Web.config 文件中添加“compilerOptions”设置。 做为此过程的组成部分,将下面的行添加到“compilerOptions”设置所引用的 AssemblyInfo.vb 或 AssemblyInfo.cs 文件中:
[assembly:System.Security.SecurityTransparentAttribute]
方法 3
--------
建立一个包含如下特性的虚拟类库:
[assembly:System.Security.SecurityTransparentAttribute]
将该类库编译到某个程序集,而后使用“copyattrs”选项对预编译网站输出运行 aspnet_merge.exe 命令行工具,如如下示例所示:
aspnet_merge c:\MyApplicationRootDirectory -copyattrs assemblyfile.dll
对于 DLL 名称,使用经过“SecurityTransparent”特性标记的虚拟类库的名称。
方法 4
--------
经过在网站的 Web.config 文件中将“trust”元素的“legacyCasModel”特性设置为“true”,临时恢复为旧的 CAS 模式,如如下示例所示:
<trust level="Medium" legacyCasModel="true"/>
在作出了此更改以后,建议您使用其余选项之一将“SecurityTransparent”特性添加到预编译的程序集。 而后,能够移除“legacyCasModel”特性并在新的 CAS 模式下运行网站。
若是将新配置节添加到 ASP.NET 或 Windows Communication Foundation (WCF) 应用程序的 Web.config 应用程序文件,则启动在 IIS 7 集成模式下运行的应用程序将失败。
例如,若是将 <standardEndpoints> 配置节添加到 WCF 应用程序的 Web.config 文件中,则将不会启动在 IIS 7 集成模式下运行的应用程序。 而 IIS 7 将返回一个配置验证错误,由于 IIS 7 配置系统没法识别新的配置节。
解决此问题的方法:
针对此问题下载并安装一个公开提供的修补程序。 http://support.microsoft.com/kb/958854 提供了此修补程序。 或者,您也能够安装包含该修补程序的 Windows Vista SP 2。 Windows 7 和 Windows Server 2008 R2 没有此问题,由于这些操做系统已包含了必需的修补程序。
在计算机上安装了 .NET Framework 4 以后,若是启用 IIS 7/7.5 或 IIS7/7.5 .NET 扩展性功能,则必须从新注册 ASP.NET 4。 当计算机上安装有 .NET Framework 4 时,若是移除 .NET 扩展性功能,也必须从新注册 ASP.NET 4。
对于以上两种状况,从新注册是必需的,由于对于计算机上已存在更高版本的 .NET Framework 这一状况,没有设计针对 IIS7 和 IIS 7.5 以及 .NET 扩展性功能的操做系统安装和卸载过程。
解决此问题的方法:
若要从新注册 ASP.NET 4,请运行下面的命令:
aspnet_regiis -iru -enable
确保使用安装在 .NET Framework 4 安装目录中的 aspnet_regiis.exe 版本。
若是您在管理远程 Web 服务器时在本地计算机上运行管理控制台 (MMC),则可能不会显示 ASP.NET 选项卡。 当您使用 IIS 6 管理工具远程管理已安装 ASP.NET 的 Web 服务器时,若是本地计算机正在运行 Windows Server 2008 x6四、Windows 7 或 Windows Server 2008 R2(x86 或 x64),则会发生此状况。
解决此问题的方法:
没有解决方法。
在 Windows Vista、Windows Server 200八、Windows 7 或 Windows Server 2008 R2 上运行 ASP.NET 2.0 版的“aspnet_regiis -ua”命令将致使出现如下错误:
不支持该请求。
出现此错误的缘由是,ASP.NET 2.0 版的“aspnet_regiis”命令没法检测计算机上是否存在更高版本的 ASP.NET。
解决此问题的方法:
运行 ASP.NET 4 版的“aspnet_regiis -ua”命令以注销计算机上的 ASP.NET 的全部版本。
对于 ASP.NET 2.0,“aspnet_regiis -i”命令以递归方式升级 Windows Server 2003 上的全部虚拟目录以使用 ASP.NET 2.0。 对于 ASP.NET 4,Windows Server 2003 上的“aspnet_regiis -i”命令只将 IIS 6 的根目录升级到 ASP.NET 4。若是将根目录下的任何虚拟目录显式设置为运行特定版本的 ASP.NET,则这些虚拟目录将保留显式设置的 ASP.NET 版本,而不是从根目录继承 ASP.NET 4 设置。
解决此问题的方法:
运行 ASP.NET 4 版本的如下任一命令:
aspnet_regiis -s
aspnet_regiis -r
这些命令强制按递归方式将全部虚拟目录更新为 ASP.NET 4。
在已注册 ASP.NET 4 的任一操做系统版本上注销 ASP.NET 2.0 都会损坏 ASP.NET 4 的某些性能计数器注册。发生此状况的缘由是,ASP.NET 2.0 注销过程没法检测计算机上是否安装有更高版本的 ASP.NET。 所以,当您使用 ASP.NET 4 的某些性能计数器时,应用程序事件日志中可能会显示相似下面的错误:
“没法在‘ASP.NET’服务的 DLL‘"%WINDOWS%\Microsoft.NET\Framework\v4.0.NNNNN\aspnet_perf.dll’中定位打开过程‘%pef_counter_name%’。”
“‘ASP.NET’服务的性能计数器数据集合已禁用。缘由是该服务的性能计数器库产生一个或多个错误。”
解决此问题的方法:
运行 ASP.NET 4 版的“aspnet_regiis -iru”命令。 这将从新注册 ASP.NET 4 性能计数器。
默认状况下,依赖于 SQL Server Express 用户实例的 ASP.NET 4 Web 项目和 Web 应用程序在如下情形下不适用:
解决此问题的方法:
有关如何解决这些问题的详细信息,请参见如下位置的文章:
http://go.microsoft.com/fwlink/?LinkID=160102
在 ASP.NET 4 中,已大大减小了默认 Web.config 文件的大小。 所以,IIS 7(在 Windows Vista 和 Windows Server 2008 上)和 IIS 7.5(在 Windows Server 2008 R2 上)将引起配置错误。 确切的错误取决于操做系统上已安装的更新和应用程序级 Web.config 文件中包含的配置信息的类型。
既未安装修补程序 KB958854 也未安装 SP2 的 Windows Vista SP1 或 Windows Server 2008 SP1。 在此配置中,IIS 7 配置系统经过比较应用程序级 Web.config 文件与 ASP.NET 2.0 machine.config 文件,错误地合并应用程序的托管配置。 为此,.NET Framework 3.5 或 .NET Framework 4 中的应用程序级 Web.config 文件必须具备一个 <system.web.extensions> 配置节,这样才不会致使 IIS 7 验证失败。 未精确匹配随 Visual Studio 2008 引入的原始样板配置节定义的手动修改的应用程序级 Web.config 文件项将致使出现配置错误。 (由 Visual Studio 2008 生成的默认配置项将起做用。) 常见的问题是:手动修改的 Web.config 文件会遗漏各类配置节定义中的配置特性“allowDefinition”和“requirePermission”。 所以,应用程序级 Web.config 文件中的简略配置节与 ASP.NET 4 machine.config 文件中的完整定义不匹配。 所以在运行时,ASP.NET 4 配置系统将引起配置错误。
安装有修补程序 KB958854 的 Windows Vista SP二、Windows Server 2008 SP二、Windows 七、Windows Server 2008 R2 以及 Windows Vista SP1 和 Windows Server 2008 SP1。 在这种状况下,IIS 7 和 IIS 7.5 本机配置系统会返回配置错误,由于该系统会针对为托管配置节处理程序定义的“type”特性执行文本比较。 由于由 Visual Studio 2008 和 Visual Studio 2008 SP1 生成的全部 Web.config 文件在 <system.web.extensions> 及相关配置节的类型字符串中都显示“3.5”,而且 ASP.NET 4 machine.config 文件在相同配置节的“type”特性中显示“4.0”,因此在 Visual Studio 2008 或 Visual Studio 2008 SP1 中生成的应用程序在 IIS 7 和 IIS 7.5 中的配置验证老是会失败。
解决此问题的方法:
对于第一种状况,经过包括 Visual Studio 2008 自动生成的 Web.config 文件中的样板配置文本,更新应用程序级 Web.config 文件。
对于第二种状况,从应用程序级 Web.config 文件中删除或注释掉全部 <system.web.extensions> 配置节定义和配置节组定义。
System.Web.Hosting.IProcessHostPreloadClient.Preload 方法采用一个字符串数组做为输入参数。 但没法设置此数据,而且不曾在此参数中传入任何信息。
解决此问题的方法:
早期的预览版 IIS 7.5 自动启动功能支持这样一种方法,即配置一个或多个字符串值以传入 ASP.NET 4 IProcessHostPerloadClient.Preload 方法。 可是,在最终发行 Windows 7 和 Windows Server 2008 R2 以前,已经移除了这一功能。
IIS 7 和 IIS 7.5 .NET 扩展性功能是“Windows 功能”对话框中提供的一个配置选项,用于安装或卸载 IIS 7 或 IIS 7.5 功能。 该功能位于下面的节点中:
Internet Information Services > 万维网服务 > 应用程序开发功能 > .NET 扩展性
在 Windows Vista、Windows Server 200八、Windows 7 和 Windows Server 2008 R2 上,.NET 扩展性功能只影响 ASP.NET 2.0 与 IIS 7 或 IIS 7.5 的集成。 它对在 IIS 7 或 IIS 7.5 中注册或注销 ASP.NET 4 没有影响。
解决此问题的方法:
若要管理 ASP.NET 4 与 IIS 7 或 IIS 7.5 的集成,请使用 ASP.NET 4 版的“aspnet_regiis.exe”命令。
运行在 IIS 6 上的 ASP.NET 2.0 应用程序(在 Windows Server 2003 或 Windows Server 2003 R2 中)可能会生成相似下面的错误:
未能找到 System.Web.HttpException: Path '/[您的应用程序根]/eurl.axd/[值]'。
只在 IIS 6 上启用了 ASP.NET 4 以后才会出现此错误。出现此错误的缘由是,当 ASP.NET 检测到某个网站配置为使用 ASP.NET 4 时,ASP.NET 4 的本机组件就会将无扩展名的 URL 传递给 ASP.NET 的托管部分进行进一步处理。
可是,若是将某个 ASP.NET 4 网站下的虚拟目录配置为使用 ASP.NET 2.0,则按这种方式处理无扩展名的 URL 将产生包含“eurl.axd”的修改后的 URL,该 URL 随后将发送给 ASP.NET 2.0 应用程序。 ASP.NET 2.0 没法识别“eurl.axd”格式。 所以,ASP.NET 2.0 将尝试找到一个名为“eurl.axd”的文件并执行该文件。 因为没有此类文件存在,所以请求将失败,并出现“HttpException”异常。
解决此问题的方法:
方法 1
--------
若是 ASP.NET 4 不是为了运行网站所必需的,请改成将网站从新映射为使用 ASP.NET 2.0。
方法 2
---------
若是须要 ASP.NET 4 才能运行网站,请将全部 ASP.NET 2.0 子虚拟目录移动到映射到 ASP.NET 2.0 的其余网站。
方法 3
---------
若是将网站从新映射到 ASP.NET 2.0 或更改虚拟目录的位置不可行,则在 ASP.NET 4 中显式禁用无扩展名的 URL 处理功能。请使用下面的过程:
1. 在 Windows 注册表中,打开下面的节点:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.<build#>
注意:<build#> 是 .NET Framework 4 发行版的内部版本号。
2. 建立一个名为“EnableExtensionlessUrls”的 DWORD 值。
3. 将“EnableExtensionlessUrls”设置为 0。这将禁用无扩展名的 URL 的行为。
4. 保存注册表值并关闭注册表编辑器。
5. 运行“iisreset”命令行工具,这将致使 IIS 读取新的注册表值。
注意:将“EnableExtensionlessUrls”设置为 1 后将禁用无扩展名的 URL 的行为。 这是未指定值时的默认设置。
使用 Entity Framework 的 Web 项目所需的对命名空间和程序集的引用已从 RTM 版的 Web.config 根文件中移除。 所以,使用 EntityDataSource 的动态数据网站以及使用经过 ASP.NET 4 预发行版建立的 Entity Framework 的 Web 应用程序将失败并报告编译错误。
解决此问题的方法:
您能够将缺乏的程序集和命名空间引用插入到应用程序的 Web.config 文件中。 下面的示例演示了必须手动插入到应用程序级 Web.config 文件中的程序集和命名空间元素。
<system.web>
<compilation>
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<pages>
<namespaces>
<add namespace="System.Data.Entity.Design" />
<add namespace="System.Data.Linq" />
</namespaces>
</pages>
</system.web>
在 Windows Vista、Windows Server 200八、Windows 7 和 Windows Server 2008 R2 上按照某些顺序安装 .NET Framework 版本 2.0 和版本 4 以后,ASP.NET 4 应用程序从 RoleManagerModule 类引起未经处理的 NullReferenceException 错误。 若是 ASP.NET 4 是向 IIS 7 或 IIS 7.5 注册的惟一的 ASP.NET 版本,而且 ASP.NET 2.0 从未注册到 IIS,或 ASP.NET 2.0 已从 IIS 7 或 IIS 7.5 中注销,则会发生此状况。
在任一状况下,ASP.NET 4 的独立注册将致使配置文件中用在集成模式应用程序中的两个 HTTP 模块顺序不正确。
解决此问题的方法:
尽管 ASP.NET 4 发布版本中会修复此错误,可是预发行版的 ASP.NET 4 可能已为模块指定错误的顺序。 若是在已从 ASP.NET 4 预发行版升级到 RTM 版本的计算机上仍发生该未经处理异常,则请执行如下步骤:
1. 打开 applicationHost.config 文件,该文件位于下面的文件夹中:
%windir%\System32\inetsrv\config
2. 查找如下元素
<location path="" overrideMode="Allow">
在此元素中列出集成模式针对的 HTTP 模块。 相关信息位于 <modules> 元素中。
3. 找到以如下字符串开头的元素:
<add name="RoleManager" ...
4. 将该元素移到以如下字符串开头的元素下面:
<add name="DefaultAuthentication"...
5. 保存该文件。
完成此操做后,<modules> 定义的一部分应相似于下面的示例:
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" />
<add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" />
使用无扩展的 URL 的 MVC 2 和 ASP.NET 4 Web 窗体应用程序在 Windows Vista、Windows Server 200八、Windows 7 或 Windows Server 2008 R2 上运行时可能会返回 HTTP 404 错误。 若是只有 .NET Framework 扩展性选项处于打开状态,并且 IIS 是经过“Windows 功能”对话框安装的,则会发生此状况。 最小安装的 IIS 将不包含某些 HTTP 模块。 因为 ASP.NET 和 IIS 管理 HTTP 管道事件转换的方式不一样,缺乏的 HTTP 模块将阻止 ASP.NET URL 路由模块在合适的时间运行。 所以,URL 路由模块不会处理对无扩展的 URL 的请求,404 错误将发生。
解决此问题的方法:
在 Windows“控制面板”中“程序和功能”应用程序的“打开或关闭 Windows 功能”对话框中,
执行如下步骤:
1. 导航至如下节点:
“Internet Information Services”-->“万维网服务”-->“常见 HTTP 功能”
2. 确保选中“HTTP 错误重定向”选项。
- 或 -
1. 导航至如下节点:
“Internet Information Services”-->“万维网服务”-->“性能功能”
2. 确保选中“静态内容压缩”选项。
在选定以上任一选项后,请单击“肯定”以保存更改。
从新启用 HTTP 错误重定向模块或静态内容压缩模块可确保 ASP.NET 和 IIS 正确同步 HTTP 管道事件。 这样,URL 路由模块就可以处理无扩展的 URL。
在早期版本的 ASP.NET 中,对 System.Web.Mobile.dll 程序集的引用包括在 Web.config 根文件的 <system.web><compilation> 下的 <assemblies> 部分中。 为了提升性能,移除了对此程序集的引用。
解决此问题的方法:
System.Web.Mobile.dll 程序集包括在 ASP.NET 4 中,但被弃用。 若是要使用 System.Web.Mobile.dll 程序集中的类型,请在 Web.config 根文件或 Web.config 应用程序文件中添加对此程序集的引用。 例如,若是要使用任何弃用的 ASP.NET 移动控件,您必须在 Web.config 文件中添加对 System.Web.Mobile.dll 程序集的引用。
已更新浏览器定义文件以包含有关新增和更新的浏览器和设备的信息。 已移除相似 Netscape Navigator 的较旧的浏览器和设备,而且已添加诸如 Google Chrome 和 Apple iPhone 等较新的浏览器和设备。
解决此问题的方法:
您能够将旧的浏览器定义文件用于 ASP.NET 4。旧的浏览器定义文件以及用于安装这些文件的文档包含在 http://go.microsoft.com/fwlink/?LinkID=186493 上发布的“ASP.NET 浏览器定义文件”中。
本地化版本的 Microsoft Ajax JavaScript 文件(如 MicrosoftAjax.debug.ja.js)将不会添加到 Microsoft Ajax 内容传递网络 (CDN),直至发布 .NET Framework 4 的本地化版本。 所以,当您使用本地化版本的 .NET Framework 和 CDN,请不要启用 ScriptManager.EnableCdn 属性。
解决此问题的方法:
等待发布本地化版本的 .NET Framework 4,而后再使用 Microsoft Ajax 内容传递网络 (CDN)。 在此以前,请确保您的应用程序中的 ScriptManager 控件未设置 EnableCdn="true"。
在安装 ASP.NET 4 以后,常规 ASP.NET 性能计数器将仅报告来自 ASP.NET 4 应用程序的数据。 若是将常规性能计数器用于 ASP.NET 1.一、ASP.NET 2.0 和 ASP.NET 3.5 应用程序,则性能计数器将不会报告任何数据。 运行早期版本的 ASP.NET 的应用程序的性能数据必须使用版本化的 ASP.NET 性能类别。
ASP.NET 的常规性能计数器包含如下性能计数器类别: “ASP.NET”和“ASP.NET 应用程序”。
版本化的 ASP.NET 性能类别的名称相似于“ASP.NET v2.0.50727”和“ASP.NET Apps v2.0.50727”。
解决此问题的方法:
此行为是设计使然。 计算机上安装的最新版的 ASP.NET“拥有”常规性能计数器类别。 所以,当您从运行不一样版本的 ASP.NET 的多个 ASP.NET 应用程序中收集性能数据时,建议您使用版本化的性能计数器类别。
没有已知问题。
没有已知问题。
没有已知问题。
没有已知问题。
没有已知问题。
在将 .NET Framework 4 从 Beta 2 升级到 RTM 版本以后,当您启动服务或重置 IIS 时可能会发生如下错误:
“系统找不到指定的文件”
解决此问题的方法:
在控制面板的“程序”应用程序中修复 .NET Framework Client Profile。
ia64 计算机未安装或不支持 WPF 程序集。
解决此问题的方法:
没有解决方法。 不能在 ia64 上使用 WPF。
当验证包含 sizeof 运算符的工做流时,将会引起异常。
解决此问题的方法:
不要在工做流中使用 sizeof 运算符。
ia64 不支持 .NET Framework 4 Client Profile。
解决此问题的方法:
若是在 ia64 上卸载 .NET Framework 4,请务必同时卸载 Full Framework 版本和 Client Profile 版本。