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的应用程序池,是否使用集成模式,如果不是则改成集成模式


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 ---