有关最新版本的自述文件,请单击此处。
1.系统要求1.1.支持的体系结构1.2.支持的操作系统1.3.硬件要求1.4.其他系统要求2.已知问题2.1.安装2.1.1.FullFramework(安装)2.1.2.ClientProfile(安装)2.2.卸载2.2.1.FullFramework(卸载)2.2.2.ClientProfile(卸载)2.3.产品问题2.3.1.一般问题2.3.2.ASP.NET2.3.3.Winforms2.3.4.并行编程2.3.5.ManagedExtensibilityFramework2.3.6.EntityFramework2.3.7.LINQtoSQL2.3.8.WindowsCommunicationFoundation(WCF)2.3.9.WindowsPresentationFoundation(WPF)2.3.10.WindowsWorkflowFoundation(WF)2.3.11.ClientProfile(产品)3.相关链接1.系统要求1.1支持的体系结构
x86x
ia(有些功能在诸如WindowsPresentationFoundation(WPF)之类的ia上不受支持)
1.2支持的操作系统
WindowsXPSP3
WindowsServer2003SP2WindowsVistaSP1Windows7
WindowsServer2008(在ServerCore角色上不受支持)WindowsServer2008R2(在ServerCore角色上不受支持)
1.3硬件要求
最少可用硬盘空间:x86:850MBx:2GB
处理器和RAM:
最低要求:Pentium1GHz、512MBRAM
1.4其他系统要求
WindowsInstaller3.1InternetExplorer5.012.已知问题2.1安装
2.1.1FullFramework(安装)
2.1.1.1在安装了.NETFramework4的情况下,修改.NETFramework3.5后无法加载类型“System.ServiceModel.Activation.HttpModule”
此问题可能由下列情况引起:
在安装.NETFramework4之后卸载Windows2003Server和WindowsXP上的.NETFramework3.5。
在安装.NETFramework4之后启用.NETFramework3.0WCFHTTP激活。在安装.NETFramework4之后安装或修复.NETFramework3.5。在已安装预发行版本时安装.NETFramework4的当前版本。
错误的完整文本如下:未
能
从
程
序
集
“System.ServiceModel,
Version=3.0.0.0,
Culture=neutral,
PublicKeyToken=b77a5c561934e0”加载类型“System.ServiceModel.Activation.HttpModule”。说明:在执行当前Web请求的过程中发生未经处理的异常。有关错误和代码中发出该错误的位置的更多信息,请查看堆栈跟踪。解决此问题的方法:
在命令提示符处,定位到%windows%\\Microsoft.Net\\Framework\\<最新版本>\\执行下面的命令:aspnet_regiis.exe/iru
2.1.1.2在WindowsVista、WindowsServer2008和Windows7上,卸载.NETFramework4Beta2会导致未使用的“isapiCgiRestriction”项保留在applicationHost.config文件中
在启用了IIS7或IIS7.5并且已安装.NETFramework4的计算机上,卸载Beta2版本会导致未使用的“isapiCgiRestriction”项保留在applicationHost.config文件中。这种情况出现在WindowsVista、WindowsServer2008和Windows7上。未使用的项不会影响Web服务器的功能。较高版本的.NETFramework4可安全地安装在同一台计算机上,因为后续安装将会更新“isapiCgiRestriction”项。
解决此问题的方法:
从applicationHost.config文件中删除未使用的“isapiCgiRestriction”项。但是,由于卸载后留下的这些项并不会影响产品功能或安装较高版本的能力,因此此步骤不是必需的。
2.1.1.3安装.NETFramework4后无法安装.NETFramework1.0
在安装.NETFramework4后无法安装.NETFramework1.0。必须在安装.NETFramework4之前安装.NETFramework1.0。
解决此问题的方法:
转到控制面板,打开“程序和功能”。卸载.NETFramework4Extended。卸载.NETFramework4ClientProfile。安装.NETFramework1.0。安装.NETFramework4。
2.1.1.4.NETFramework4安装程序安装失败
未能安装.NETFramework4安装程序。解决此问题的方法:
参考.NETFramework4安装程序疑难解答指南(http://go.microsoft.com/fwlink/?LinkId=186690)
2.1.1.5卸载.NETFramework4后未彻底删除WindowsPresentationFoundation(WPF)4字体缓存服务(FullFramework)
卸载.NETFramework4后未彻底删除WindowsPresentationFoundation(WPF)4字体缓存服务(FullFramework)。
注意:此问题对.NETFramework的FullFramework版本和ClientProfile版本都会产生影响。解决此问题的方法:
在管理员模式下打开命令窗口。键入“scdeleteWPFFontCache_v0400”
此时应显示“[SC]DeleteServiceSUCCESS”。
刷新服务控制台后不应显示字体缓存。如果刷新操作未解决此问题,请重新启动计算机。
2.1.2ClientProfile(安装)
2.1.2.1安装.NETFramework4ClientProfile后无法安装.NETFramework1.0
在安装.NETFramework4ClientProfile后无法安装.NETFramework1.0。Framework4ClientProfile之前安装.NETFramework1.0。解决此问题的方法:
必须在安装.NET
转到控制面板,打开“程序和功能”。卸载.NETFramework4ClientProfile。安装.NETFramework1.0。
安装.NETFramework4ClientProfile。
2.1.2.2卸载.NETFramework4后未彻底删除WindowsPresentationFoundation(WPF)4字体缓存服务(ClientProfile)
卸载.NETFramework4后可能未彻底卸载WPF字体缓存服务。
尽管WPF字体缓存服务在卸载后再也无法使用,但服务控制台中仍会显示“WindowsPresentationFoundation字体缓存4.0.0.0”服务条目。
在WindowsVista和WindowsServer2008上,服务控制台“描述”字段将会显示:“<读取描述失败。错误代码:2>”。在WindowsXP和WindowsServer2003上,“描述”字段仍将会显示正确的字符串。
重新安装.NETFramework将会修复此问题。尚不确定是否还有任何其他影响。
注意:此问题对.NETFramework的ClientProfile版本和FullFramework版本都会产生影响。解决此问题的方法:
在管理员模式下打开命令窗口。键入“scdeleteWPFFontCache_v0400”
此时应显示“[SC]DeleteServiceSUCCESS”。
刷新服务控制台后不应显示字体缓存。如果刷新操作未解决此问题,请重新启动计算机。
2.1.2.3.NETFramework4ClientProfile安装程序安装失败
未能安装.NETFramework4ClientProfile安装程序。解决此问题的方法:
参考.NETFramework4安装程序疑难解答指南(http://go.microsoft.com/fwlink/?LinkId=186690)
2.2卸载
2.2.1FullFramework(卸载)
2.2.1.1在WindowsVista、WindowsServer2008和Windows7上,卸载.NETFramework4Beta2会导致未使用的“isapiCgiRestriction”项保留在applicationHost.config文件中
在启用了IIS7或IIS7.5并且已安装.NETFramework4的计算机上,卸载Beta2版本会导致未使用的“isapiCgiRestriction”项保留在applicationHost.config文件中。这种情况出现在WindowsVista、WindowsServer2008和Windows7上。未使用的项不会影响Web服务器的功能。较高版本的.NETFramework4可安全地安装在同一台计算机上,因为后续安装将会更新“isapiCgiRestriction”项。
解决此问题的方法:
从applicationHost.config文件中删除未使用的“isapiCgiRestriction”项。但是,由于卸载后留下的这些项并不会影响产品功能或安装较高版本的能力,因此此步骤不是必需的。
2.2.1.2卸载NET4后未彻底删除WPF4.0字体缓存服务(FullFramework)
彻底删除此孤立的字体缓存服务的方法:
在管理员模式下打开命令窗口
输入:“scdeleteWPFFontCache_v0400”
此时应显示:“[SC]DeleteServiceSUCCESS”。
如果刷新服务控制台,则此时不应显示字体缓存。如果刷新服务控制台并未解决此问题,则可能需要重新启动。
(注意:此问题适用于FullFramework,与适用于ClientProfile的877240自述文件问题相同)解决此问题的方法:彻底删除此孤立的字体缓存服务的方法:
在管理员模式下打开命令窗口
输入:“scdeleteWPFFontCache_v0400”
此时应显示:“[SC]DeleteServiceSUCCESS”。
如果刷新服务控制台,则此时不应显示字体缓存。如果刷新服务控制台并未解决此问题,则可能需要重新启动。
2.2.2ClientProfile(卸载)
2.2.2.1卸载NET4后未彻底删除WPF4.0字体缓存服务(ClientProfile)
从Vista/XP/w2k3/W2k8卸载.NET4.0之后,未彻底卸载WPF字体缓存服务。
尽管WPF字体缓存服务在卸载后再也无法使用,但服务控制台中仍会存在并显示“WindowsPresentationFoundation字体缓存4.0.0.0”服务条目。
在Vista和W2k8上,服务控制台“描述”字段将会显示:“<读取描述失败。错误代码:2>”。在XP/w2k3上,“描述”字段仍将会显示正确字符串。
重新安装Framework将会修复此问题。尚不确定是否还有任何其他影响。注意:Net4ClientProfile和NET4FullFramework同时存在此问题解决此问题的方法:
彻底删除此孤立的字体缓存服务的方法:
在管理员模式下打开命令窗口
输入:“scdeleteWPFFontCache_v0400”
此时应显示:“[SC]DeleteServiceSUCCESS”。
如果刷新服务控制台,则此时不应显示字体缓存。如果刷新服务控制台并未解决此问题,则可能需要重新启动。
(注意:此问题适用于ClientProfile,与适用于FullFramework的888322自述文件问题相同)。
2.3产品问题
2.3.1一般问题
2.3.1.1可再发行语言包的位置不正确导致ClickOnce发布失败。
如果在“系统必备”对话框中选中“从与我的应用程序相同的位置下载系统必备组件”选项,并选择以下任何组件作为系统必备组件,则当使用简体中文或繁体中文版本的VisualStudio2010发布应用程序时,可能会显示生成错误:
Microsoft.NETFramework4(x86和x)
Microsoft.NETFramework4ClientProfile(x86和x)MicrosoftVisualF#Runtimefor.NET2.0MicrosoftVisualF#Runtimefor.NET4.0
对于“Microsoft.NETFramework4ClientProfile(x86和x)”,系统可能会显示下面的生成错误:“MSB3152:系统必备的安装位置未设置为‘组件供应商的网站’,无法在磁盘上找到项‘Microsoft.NETFramework
4
Client
Profile
(x86
和
x)’
中
的
文
件
‘DotNetFX40Client\\dotNetFx40LP_Client_x86_xcs.exe’。有关详细信息,请参见‘帮助’。”解决此问题的方法:若要在简体中文版本中解决此问题,请按以下步骤操作:
导航到文件夹“%ProgramFiles%\\MicrosoftSDKs\\Windows\\v7.0A\\Bootstrapper\\Packages\\DotNetFX40Client”。对于x操作系统,该路径位于%ProgramFiles(x86)%下。将zh-Hans文件夹复制到名为zh-chs的新文件夹导航到zh-chs文件夹。
在管理员模式下打开Package.xml。
按如下方法将>Culture<的值更改为zh-chs:
若要在繁体中文版本中解决此问题,请按以下步骤操作: 导航到文件夹“%ProgramFiles%\\MicrosoftSDKs\\Windows\\v7.0A\\Bootstrapper\\Packages\\DotNetFX40Client”。对于x操作系统,该路径位于%ProgramFiles(x86)%下。将zh-Hant文件夹复制到名为zh-cht的新文件夹导航到zh-cht文件夹。 在管理员模式下打开Package.xml。 按如下方法将>Culture<的值更改为zh-cht: 2.3.1.2ClickOnce应用程序安装的可再发行语言包不正确。 如果在“系统必备”对话框中选中“从组件供应商的网站上下载系统必备组件”选项,并选择以下任何组件作为系统必备组件,则当使用简体中文或繁体中文版本的VisualStudio2010发布应用程序时,可能会无法安装简体中文或繁体中文语言包: Microsoft.NETFramework4(x86和x) Microsoft.NETFramework4ClientProfile(x86和x)MicrosoftVisualF#Runtimefor.NET2.0MicrosoftVisualF#Runtimefor.NET4.0 解决此问题的方法: 若要在简体中文版本中解决此问题,请按以下步骤操作: 导航到文件夹“%ProgramFiles%\\MicrosoftSDKs\\Windows\\v7.0A\\Bootstrapper\\Packages\\DotNetFX40Client”。对于x操作系统,该路径位于%ProgramFiles(x86)%下。将zh-Hans文件夹复制到名为zh-chs的新文件夹导航到zh-chs文件夹。 在管理员模式下打开Package.xml。 按如下方法将>Culture<的值更改为zh-chs: 若要在繁体中文版本中解决此问题,请按以下步骤操作: 导航到文件夹“%ProgramFiles%\\MicrosoftSDKs\\Windows\\v7.0A\\Bootstrapper\\Packages\\DotNetFX40Client”。对于x操作系统,该路径位于%ProgramFiles(x86)%下。将zh-Hant文件夹复制到名为zh-cht的新文件夹导航到zh-cht文件夹。 在管理员模式下打开Package.xml。 按如下方法将>Culture<的值更改为zh-cht: 2.3.2ASP.NET 2.3.2.1在Windows7上安装.NETFramework4之后,无法再在IIS7.5上为各个应用程序池配置aspnet.config文件 在运行Windows7并且已启用IIS7.5的客户端或服务器计算机上安装.NETFramework4之后,用于为不同应用程序池配置ASP.NET配置文件的选项停止工作。发生这种情况的原因是,安装.NETFramework4后导致公共语言运行时(CLR)初始化的默认行为有了轻微改变。当安装.NETFramework4时,Windows7上的IIS7.5将调入本机ASP.NET4DLL以执行CLR初始化,而此初始化逻辑不允许使用不同的配置文件。解决此问题的方法:由于.NETFramework4和IIS7.5的CLR初始化逻辑基本相同(配置文件副作用除外),因此您可以重新配置IIS7.5,使其不再将CLR初始化委托给ASP.NET4。可以按以下两种方式执行此操作。方法1----------在IIS7.5applicationHost.config文件中,将“managedRuntimeLoader”特性的默认值设置为一个空字符串,如以下示例所示: 在IIS7.5IIS_Schema.xml文件中,将名为“managedRuntimeLoader”的特性中的“defaultValue”设置为一个空字符串。例如,该特性最初可能类似于以下示例: 2.3.2.2在WindowsXP和WindowsServer2003上注销和重新注册ASP.NET4时,将会导致IISMMC中ASP.NET属性选项卡上的ASP.NET版本值为空 在WindowsXP和WindowsServer2003(所有版本)上,如果您在从IIS中注销ASP.NET4后重新注册它,IISMMC会在ASP.NET选项卡上的ASP.NET版本列表中显示空值。下列步骤序列将导致出现此问题: 使用aspnet_regiis的ASP.NET4版本运行“aspnet_regiis-u” 使用aspnet_regiis的ASP.NET4版本运行“aspnet_regiis-i-enable” 解决此问题的方法: 在IISMMC的ASP.NET版本列表中,手动选择所需的ASP.NET版本,然后单击“应用”按钮。 2.3.2.3WindowsVista、WindowsServer2008和Windows7上的ASP.NET编译任务可能因IIS辅助进程没有对Windows临时目录的写权限而失败 由于IIS辅助进程没有对Windows临时目录(%WINDOWS%\\Temp)的写权限,WindowsVista、WindowsServer2008和Windows7上的某些ASP.NET编译任务可能会失败。在尝试编译依赖于WSDL文件的Web服务引用等项目时,您可能会看到诸如“分析器错误消息:无法生成临时类”这样的错误。 如果计算机上启用了IIS并且安装了.NETFramework4,但尚未启用ASP.NET和.NET扩展性的功能,则会出现此错误。解决此问题的方法:方法1----------为IIS辅助进程帐户显式授予对于Windows临时目录(%WINDOWS%\\Temp)的写权限。执行此操作的一种方法是,对一个包含辅助进程帐户的组(如IIS_IUSRS组)授予写访问权限。方法2---------启用ASP.NET和.NET扩展性的功能。在Windows的“控制面板”中打开“程序”,然后在“程序和功能”下单击“打开或关闭Windows功能”。在“Windows功能”对话框中,依次打开“InternetInformationServices”、“万维网服务”和“应用程序开发功能”节点。启用以下功能:.NET扩展性ASP.NET 2.3.2.4以部分信任运行网站时,尝试加载在GAC中部署的预编译的Web程序集会失败并引发“SecurityException”异常 可以通过使用aspnet_compiler.exe命令行工具来预编译ASP.NET网站。如果使用密钥对生成的程序集进行签名,则可以在GAC中而不是网站的Bin文件夹中部署这些程序集。 在ASP.NET4中,如果以部分信任运行的网站尝试从GAC中加载程序集,则将引发“System.Security.SecurityException”异常。出现这种情况的原因是,默认情况下ASP.NET4使用比早期版本的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_mergec:\\MyApplicationRootDirectory-copyattrsassemblyfile.dll 对于DLL名称,使用通过“SecurityTransparent”特性标记的虚拟类库的名称。方法4--------通过在网站的Web.config文件中将“trust”元素的“legacyCasModel”特性设置为“true”,临时恢复为旧的CAS模式,如以下示例所示: 在做出了此更改之后,建议您使用其他选项之一将“SecurityTransparent”特性添加到预编译的程序集。然后,可以移除“legacyCasModel”特性并在新的CAS模式下运行网站。 2.3.2.5ASP.NET和WCF应用程序可能无法在IIS7集成模式下启动 如果将新配置节添加到ASP.NET或WindowsCommunicationFoundation(WCF)应用程序的Web.config应用程序文件,则启动在IIS7集成模式下运行的应用程序将失败。 例如,如果将 针对此问题下载并安装一个公开提供的修补程序。http://support.microsoft.com/kb/958854提供了此修补程序。或者,您也可以安装包含该修补程序的WindowsVistaSP2。Windows7和WindowsServer2008R2没有此问题,因为这些操作系统已包含了必需的修补程序。 2.3.2.6可能需要在WindowsVista、WindowsServer2008、Windows7和WindowsServer2008R2上重新注册ASP.NET4 在计算机上安装了.NETFramework4之后,如果启用IIS7/7.5或IIS7/7.5.NET扩展性功能,则必须重新注册ASP.NET4。当计算机上安装有.NETFramework4时,如果移除.NET扩展性功能,也必须重新注册ASP.NET4。 对于以上两种情况,重新注册是必需的,因为对于计算机上已存在更高版本的.NETFramework这一情况,没有设计针对IIS7和IIS7.5以及.NET扩展性功能的操作系统安装和卸载过程。 解决此问题的方法: 若要重新注册ASP.NET4,请运行下面的命令: aspnet_regiis-iru-enable 确保使用安装在.NETFramework4安装目录中的aspnet_regiis.exe版本。 2.3.2.7管理远程Web服务器时可能不显示ASP.NET管理控制台(MMC)选项卡 如果您在管理远程Web服务器时在本地计算机上运行管理控制台(MMC),则可能不会显示ASP.NET选项卡。当您使用IIS6管理工具远程管理已安装ASP.NET的Web服务器时,如果本地计算机正在运行WindowsServer2008x、Windows7或WindowsServer2008R2(x86或x),则会发生此情况。解决此问题的方法:没有解决方法。 2.3.2.8运行ASP.NET2.0版的“aspnet_regiis-ua”时无法注销包括ASP.NET4在内的其他版本的ASP.NET 在WindowsVista、WindowsServer2008、Windows7或WindowsServer2008R2上运行ASP.NET2.0版的“aspnet_regiis-ua”命令将导致出现以下错误: 不支持该请求。 出现此错误的原因是,ASP.NET2.0版的“aspnet_regiis”命令无法检测计算机上是否存在更高版本的ASP.NET。解决此问题的方法: 运行ASP.NET4版的“aspnet_regiis-ua”命令以注销计算机上的ASP.NET的所有版本。 2.3.2.9在WindowsServer2003上运行“aspnet_regiis-i”不会以递归方式强制将虚拟目录升级到ASP.NET4 对于ASP.NET2.0,“aspnet_regiis-i”命令以递归方式升级WindowsServer2003上的所有虚拟目录以使用ASP.NET2.0。对于ASP.NET4,WindowsServer2003上的“aspnet_regiis-i”命令只将IIS6的根目录升级到ASP.NET4。如果将根目录下的任何虚拟目录显式设置为运行特定版本的ASP.NET,则这些虚拟目录将保留显式设置的ASP.NET版本,而不是从根目录继承ASP.NET4设置。解决此问题的方法: 运行ASP.NET4版本的以下任一命令: aspnet_regiis-saspnet_regiis-r 这些命令强制按递归方式将所有虚拟目录更新为ASP.NET4。 2.3.2.10注销ASP.NET2.0后中断ASP.NET4性能计数器 在已注册ASP.NET4的任一操作系统版本上注销ASP.NET2.0都会损坏ASP.NET4的某些性能计数器注册。发生此情况的原因是,ASP.NET2.0注销过程无法检测计算机上是否安装有更高版本的ASP.NET。因此,当您使用ASP.NET4的某些性能计数器时,应用程序事件日志中可能会显示类似下面的错误: “ ‘%pef_counter_name%’。” “‘ASP.NET’服务的性能计数器数据集合已禁用。原因是该服务的性能计数器库产生一个或多个错误。” 解决此问题的方法: 运行ASP.NET4版的“aspnet_regiis-iru”命令。这将重新注册ASP.NET4性能计数器。 无 法 在 ‘ASP.NET’ 服 务 的 DLL‘\"%WINDOWS%\\Microsoft.NET\\Framework\\v4.0.NNNNN\\aspnet_perf.dll’中定位打开过程 2.3.2.11SQLServerExpress用户实例不适用于IIS6或IIS7下的Web应用程序项目或IIS7.5下的应用程序 默认情况下,依赖于SQLServerExpress用户实例的ASP.NET4Web项目和Web应用程序在以下情形下不适用: Web应用程序项目(WAP)作为虚拟目录承载于任一版本的IIS上。这是因为SQLServerExpress用户实例需要对用户的Documents文件夹的特定文件权限,但默认IIS服务帐户(NETWORKSERVICE)没有这些权限。 网站承载于在Windows7或WindowsServer2008R2上运行的IIS7.5中。这是因为用于IIS7.5应用程序池的默认安全凭据并不基于NETWORKSERVICE。 解决此问题的方法: 有关如何解决这些问题的详细信息,请参见以下位置的文章: http://go.microsoft.com/fwlink/?LinkID=1601022.3.2.12当应用程序级Web.config文件中存在相关节时ASP.NET4或IIS7引发配置错误 在ASP.NET4中,已大大减少了默认Web.config文件的大小。因此,IIS7(在WindowsVista和WindowsServer2008上)和IIS7.5(在WindowsServer2008R2上)将引发配置错误。确切的错误取决于操作系统上已安装的更新和应用程序级Web.config文件中包含的配置信息的类型。既未安装修补程序KB958854也未安装SP2的WindowsVistaSP1或WindowsServer2008SP1。在此配置中,IIS7配置系统通过比较应用程序级Web.config文件与ASP.NET2.0machine.config文件,错误地合并应用程序的托管配置。为此,.NETFramework3.5或.NETFramework4中的应用程序级Web.config文件必须具有一个 未精确匹配随VisualStudio2008引入的原始样板配置节定义的手动修改的应用程序级 Web.config文件项将导致出现配置错误。(由VisualStudio2008生成的默认配置项将起作用。)常见的问题是:手动修改的Web.config文件会遗漏各种配置节定义中的配置特性“allowDefinition”和“requirePermission”。因此,应用程序级Web.config文件中的简略配置节与ASP.NET4machine.config文件中的完整定义不匹配。因此在运行时,ASP.NET4配置系统将引发配置错误。安装有修补程序KB958854的WindowsVistaSP2、WindowsServer2008SP2、Windows7、WindowsServer2008R2以及WindowsVistaSP1和WindowsServer2008SP1。在这种情况下,IIS7和IIS7.5本机配置系统会返回配置错误,因为该系统会针对为托管配置节处理程序定义的“type”特性执行文本比较。因为由VisualStudio2008和VisualStudio2008SP1生成的所有Web.config文件在 对于第一种情况,通过包括VisualStudio2008自动生成的Web.config文件中的样板配置文本,更新应用程序级Web.config文件。 对于第二种情况,从应用程序级Web.config文件中删除或注释掉所有 2.3.2.13未曾向System.Web.Hosting.IProcessHostPreloadClient.Preload方法传递过任何参数数据 System.Web.Hosting.IProcessHostPreloadClient.Preload方法采用一个字符串数组作为输入参数。但无法设置此数据,并且未曾在此参数中传入任何信息。解决此问题的方法: 早期的预览版IIS7.5自动启动功能支持这样一种方法,即配置一个或多个字符串值以传入ASP.NET4IProcessHostPerloadClient.Preload方法。但是,在最终发行Windows7和WindowsServer2008R2之前,已经移除了这一功能。 2.3.2.14WindowsVista、WindowsServer2008、Windows7和WindowsServer2008R2上的IIS7/IIS7.5.NET扩展性功能未与ASP.NET4集成 IIS7和IIS7.5.NET扩展性功能是“Windows功能”对话框中提供的一个配置选项,用于安装或卸载IIS7或IIS7.5功能。该功能位于下面的节点中: InternetInformationServices>万维网服务>应用程序开发功能>.NET扩展性 在WindowsVista、WindowsServer2008、Windows7和WindowsServer2008R2上,.NET扩展性功能只影响ASP.NET2.0与IIS7或IIS7.5的集成。它对在IIS7或IIS7.5中注册或注销ASP.NET4没有影响。解决此问题的方法:若要管理ASP.NET4与IIS7或IIS7.5的集成,请使用ASP.NET4版的“aspnet_regiis.exe”命令。 2.3.2.15运行在IIS6上的ASP.NET2.0应用程序可能生成类似“未能找到System.Web.HttpException:Path'/[您的应用程序根]/eurl.axd/[值]'。”的错误 运行在IIS6上的ASP.NET2.0应用程序(在WindowsServer2003或WindowsServer2003R2中)可能会生成类似下面的错误: 未能找到System.Web.HttpException:Path'/[您的应用程序根]/eurl.axd/[值]'。 只在IIS6上启用了ASP.NET4之后才会出现此错误。出现此错误的原因是,当ASP.NET检测到某个网站配置为使用ASP.NET4时,ASP.NET4的本机组件就会将无扩展名的URL传递给ASP.NET的托管部分进行进一步处理。 但是,如果将某个ASP.NET4网站下的虚拟目录配置为使用ASP.NET2.0,则按这种方式处理无扩展名的URL将产生包含“eurl.axd”的修改后的URL,该URL随后将发送给ASP.NET2.0应用程序。ASP.NET2.0无法识别“eurl.axd”格式。因此,ASP.NET2.0将尝试找到一个名为“eurl.axd”的文件并执行该文件。由于没有此类文件存在,因此请求将失败,并出现“HttpException”异常。解决此问题的方法:方法1--------如果ASP.NET4不是为了运行网站所必需的,请改为将网站重新映射为使用ASP.NET2.0。方法2---------如果需要ASP.NET4才能运行网站,请将所有ASP.NET2.0子虚拟目录移动到映射到ASP.NET2.0的其他网站。方法3---------如果将网站重新映射到ASP.NET2.0或更改虚拟目录的位置不可行,则在ASP.NET4中显式禁用无扩展名的URL处理功能。请使用下面的过程:1.在Windows注册表中,打开下面的节点: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\ASP.NET\\4.0. 3.将“EnableExtensionlessUrls”设置为0。这将禁用无扩展名的URL的行为。4.保存注册表值并关闭注册表编辑器。 5.运行“iisreset”命令行工具,这将导致IIS读取新的注册表值。 注意:将“EnableExtensionlessUrls”设置为1后将禁用无扩展名的URL的行为。这是未指定值时的默认设置。 2.3.2.16使用EntityFramework并且是通过使用ASP.NET4预发行版创建的网站因缺少程序集引用的缘故而停止工作 使用EntityFramework的Web项目所需的对命名空间和程序集的引用已从RTM版的Web.config根文件中移除。因此,使用EntityDataSource的动态数据网站以及使用通过ASP.NET4预发行版创建的EntityFramework的Web应用程序将失败并报告编译错误。解决此问题的方法: 您可以将缺少的程序集和命名空间引用插入到应用程序的Web.config文件中。下面的示例演示了必须手动插入到应用程序级Web.config文件中的程序集和命名空间元素。 Version=4.0.0.0,Version=4.0.0.0,Version=4.0.0.0, Culture=neutral,Culture=neutral,Culture=neutral, PublicKeyToken=b77a5c561934e0\"/>PublicKeyToken=b77a5c561934e0\"/>PublicKeyToken=b77a5c561934e0\"/> 2.3.2.17以集成模式在IIS7或IIS7.5上运行的预发行版的ASP.NET4可能报告从RoleManagerModule类引发的未经处理的NullReferenceException错误 在WindowsVista、WindowsServer2008、Windows7和WindowsServer2008R2上按照某些顺序安装.NETFramework版本2.0和版本4之后,ASP.NET4应用程序从RoleManagerModule类引发未经处理的NullReferenceException错误。如果ASP.NET4是向IIS7或IIS7.5注册的唯一的ASP.NET版本,并且ASP.NET2.0从未注册到IIS,或ASP.NET2.0已从IIS7或IIS7.5中注销,则会发生此情况。 在任一情况下,ASP.NET4的注册将导致配置文件中用在集成模式应用程序中的两个HTTP模块顺序不正确。解决此问题的方法: 尽管ASP.NET4发布版本中会修复此错误,但是预发行版的ASP.NET4可能已为模块指定错误的顺序。如果在已从ASP.NET4预发行版升级到RTM版本的计算机上仍发生该未经处理异常,则请执行以下步骤: 1.打开applicationHost.config文件,该文件位于下面的文件夹中: %windir%\\System32\\inetsrv\\config2.查找以下元素 在此元素中列出集成模式针对的HTTP模块。相关信息位于 name=\"RoleManager\" type=\"System.Web.Security.DefaultAuthenticationModule\" type=\"System.Web.Security.RoleManagerModule\" preCondition=\"managedHandler\"/>preCondition=\"managedHandler\"/> 2.3.2.18使用URL路由的MVC2和ASP.NET4Web窗体应用程序尝试在IIS7和IIS7.5上处理无扩展的URL时可能返回HTTP404错误 使用无扩展的URL的MVC2和ASP.NET4Web窗体应用程序在WindowsVista、WindowsServer2008、Windows7或WindowsServer2008R2上运行时可能会返回HTTP404错误。如果只有.NETFramework扩展性选项处于打开状态,而且IIS是通过“Windows功能”对话框安装的,则会发生此情况。最小安装的IIS将不包含某些HTTP模块。由于ASP.NET和IIS管理HTTP管道事件转换的方式不同,缺少的HTTP模块将阻止ASP.NETURL路由模块在合适的时间运行。因此,URL路由模块不会处理对无扩展的URL的请求,404错误将发生。解决此问题的方法: 在Windows“控制面板”中“程序和功能”应用程序的“打开或关闭Windows功能”对话框中,执行以下步骤:1.导航至以下节点: “InternetInformationServices”-->“万维网服务”-->“常见HTTP功能”2.确保选中“HTTP错误重定向”选项。-或-1.导航至以下节点: “InternetInformationServices”-->“万维网服务”-->“性能功能”2.确保选中“静态内容压缩”选项。 在选定以上任一选项后,请单击“确定”以保存更改。 重新启用HTTP错误重定向模块或静态内容压缩模块可确保ASP.NET和IIS正确同步HTTP管道事件。这样,URL路由模块就能够处理无扩展的URL。 2.3.2.19System.Web.Mobile.dll已从Web.config根文件中移除 在早期版本的ASP.NET中,对System.Web.Mobile.dll程序集的引用包括在Web.config根文件的 System.Web.Mobile.dll程序集包括在ASP.NET4中,但被弃用。如果要使用System.Web.Mobile.dll程序集中的类型,请在Web.config根文件或Web.config应用程序文件中添加对此程序集的引用。例如,如果要使用任何弃用的ASP.NET移动控件,您必须在Web.config文件中添加对System.Web.Mobile.dll程序集的引用。 2.3.2.20已对浏览器定义文件和浏览器功能做出更改 已更新浏览器定义文件以包含有关新增和更新的浏览器和设备的信息。已移除类似NetscapeNavigator的较旧的浏览器和设备,并且已添加诸如GoogleChrome和AppleiPhone等较新的浏览器和设备。解决此问题的方法: 您可以将旧的浏览器定义文件用于ASP.NET4。旧的浏览器定义文件以及用于安装这些文件的文档包含在http://go.microsoft.com/fwlink/?LinkID=13上发布的“ASP.NET浏览器定义文件”中。 2.3.2.21ScriptManager.EnableCdn和本地化的MicrosoftAjax文件 本地化版本的MicrosoftAjaxJavaScript文件(如MicrosoftAjax.debug.ja.js)将不会添加到MicrosoftAjax内容传递网络(CDN),直至发布.NETFramework4的本地化版本。因此,当您使用本地化版本的.NETFramework和CDN,请不要启用ScriptManager.EnableCdn属性。解决此问题的方法: 等待发布本地化版本的.NETFramework4,然后再使用MicrosoftAjax内容传递网络(CDN)。在此之前,请确保您的应用程序中的ScriptManager控件未设置EnableCdn=\"true\"。 2.3.2.22常规ASP.NET性能计数器只报告来自ASP.NET4应用程序的数据 在安装ASP.NET4之后,常规ASP.NET性能计数器将仅报告来自ASP.NET4应用程序的数据。如果将常规性能计数器用于ASP.NET1.1、ASP.NET2.0和ASP.NET3.5应用程序,则性能计数器将不会报告任何数据。运行早期版本的ASP.NET的应用程序的性能数据必须使用版本化的ASP.NET性能类别。 ASP.NET的常规性能计数器包含以下性能计数器类别:“ASP.NET”和“ASP.NET应用程序”。版本化的ASP.NET性能类别的名称类似于“ASP.NETv2.0.50727”和“ASP.NETAppsv2.0.50727”。解决此问题的方法: 此行为是设计使然。计算机上安装的最新版的ASP.NET“拥有”常规性能计数器类别。因此,当您从运行不同版本的ASP.NET的多个ASP.NET应用程序中收集性能数据时,建议您使用版本化的性能计数器类别。 2.3.3Winforms 没有已知问题。 2.3.4并行编程 没有已知问题。 2.3.5ManagedExtensibilityFramework 没有已知问题。 2.3.6EntityFramework 没有已知问题。 2.3.7LINQtoSQL 没有已知问题。 2.3.8WindowsCommunicationFoundation(WCF) 2.3.8.1在升级ClientProfile后启动服务或重置IIS时出现“系统找不到指定的文件”错误 在将.NETFramework4从Beta2升级到RTM版本之后,当您启动服务或重置IIS时可能会发生以下错误: “系统找不到指定的文件”解决此问题的方法: 在控制面板的“程序”应用程序中修复.NETFrameworkClientProfile。 2.3.9WindowsPresentationFoundation(WPF) 2.3.9.1ia不支持WindowsPresentationFoundation(WPF) ia计算机未安装或不支持WPF程序集。解决此问题的方法:没有解决方法。不能在ia上使用WPF。 2.3.10WindowsWorkflowFoundation(WF)2.3.10.1工作流验证不支持sizeof运算符 当验证包含sizeof运算符的工作流时,将会引发异常。解决此问题的方法:不要在工作流中使用sizeof运算符。 2.3.11ClientProfile(产品) 2.3.11.1ia不支持.NETFramework4ClientProfile ia不支持.NETFramework4ClientProfile。解决此问题的方法:如果在ia上卸载.NETFramework4,请务必同时卸载FullFramework版本和ClientProfile版本。 3.相关链接Microsoft感谢下列与我们一起帮助保护客户的人员: *JeroenFrijters若要查看要升级到.NETFramework4的ASP.NET开发人员可能会进行的重大更改的列表,请参见:http://go.microsoft.com/fwlink/?LinkID=186526。此列表随着新问题的发现而不断得到更新。
因篇幅问题不能全部显示,请点此查看更多更全内容