asp.net常见问题收集二
1 找不到编译动态表达式所需的一个或多个类型。是否缺少引用?
因为用到 dynamic ctx = request.Properties[HttpContext]; 所以编译时报错
解决办法 添加 在项目里需要引用Miscorsoft.CSharp类库,即可编译成功
2 inconclusive test wasn't run
在vs2013 NUnit测试中,运行测试出现inconclusive test wasn't run(不确定的测试未运行),发现原来可以的测试也会如此
原因:config文件中有错误,改掉即可。
3 未能加载文件或程序集 *** 试图加载格式不正确的程序
原因分析:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题。
解决方案:IIS——应用程序池——高级设置——启用32位应用程序 :true。
win7 在网站对应的应用程序池的高级设置中 启用32位应用程序 :true
4 HTTP 错误 500.21 - Internal Server Error
错误:HTTP 错误 500.21 - Internal Server Error处理程序“NickLeeCallbackHandler”在其模块列表中有一个错误模块“ManagedPipelineHandler”
原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装
解决:开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
如果还不行,可检查IIS的应用程序池,是否使用集成模式,如果不是则改成集成模式
原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装
解决:开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
如果还不行,可检查IIS的应用程序池,是否使用集成模式,如果不是则改成集成模式
5 未能从程序集“System.ServiceModel, Version=3.0.0.0问题解决
在Windows Server 2008中的IIS服务器中部署WCF服务程序时,通过浏览器访问报出如下错误:
未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型 “System.ServiceModel.Activation.HttpModule”。
原因:
这是因为先安装了 .NET Framework 4,随后启用了 .NET Framework 3.5 WCF HTTP 激活,则会发生此错误。
解决办法:
微软官方对该问题也作了解答:http://msdn.microsoft.com/zh-cn/library/aa751852.aspx
只需要已管理员用户在cmd中运行aspnet_regiis.exe -i -enable即可。(注意要在对应的framework版本下,且win7 需以管理员身份运行)
6 VS Browser Link 问题
用fiddler监控页面请求发现很多内部连接请求,查看源码可以发现在页面底部有如下代码<script id="__browserLink_initializationData" type="application/json">
{"appName":"Firefox","requestId":"23b71f085f334e97969864ab934745c5"}
</script>
<script async="async" src="http://localhost:49925/4b38e516c0774211882dabde19ecda0f/browserLink" type="text/javascript">
这个是vs 2013会自动生成在aspx页面的
修改web.config
<add key="vs:EnableBrowserLink" value="false"/> 这样就不会生成这样的代码了
7 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
cmd
c:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i
这样注册下4.0的框架,然后在应用程序池中配置改成4.0的框架即可,上面的路径可能各机器不同,注意
8 Compiler Error Message: CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework64*****
给 c:\windows\temp这个文件夹给iis_users这个用户加上访问权限(读取和执行)即可
--- end ---