异常处理(未分类)
此文章为学习工作中需要的处理问题/异常的经验的整理,本文未进行异常分类,随着异常项的增多,会逐渐开始分类整理。
编译器失败,错误代码为 -2146232576:
去除config文件中的<system.codedom>节点
webservice相关异常:
1.【检测到有潜在危险的 Request.Form 值】访问参数中带有xml内容或者特殊字符时,页面会报Requet.Form类似的提示:
<system.web>
<httpRuntime requestValidationMode="2.0"/>
</system.web>
2.通过第三方的WebService进行访问时,出参内容比较多时,会被拒绝:
提示:System.ServiceModel.CommunicationException:已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。
<basicHttpBinding> <binding name="********Soap" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" /> </basicHttpBinding>
3.通过外网访问webservice时,发现本来可以进行输入的测试窗口不见了,只剩下一行提示(具体提示忘了):
<system.web> <webServices> <protocols> <add name="HttpSoap"/> <add name="HttpPost"/> <add name="HttpGet"/> <add name="Documentation"/> </protocols> </webServices> </system.web>
数据处理相关异常:
1.参数化查询 '(@Name n' 需要参数 '@Name',但未提供该参数。
cmd.Parameters.AddWithValue("@Name", null);
该异常是在进行插入或者更新的时的字段为null,而数据库接受是DBNULL.Value
2.数据转换问题:System.InvalidCastException: 对象不能从 DBNull 转换为其他类型。
注:我用的是类型精准匹配的方案,可以根据需要改成泛型版本,不过那时候default的处理以及异常获取需要处理一下,原生的struct的大多数还是通用的,但是涉及到引用类型以及一些特殊的struct就需要特别处理了。
public static int ToInt32(this string s, int defVal = default) { try { return Convert.ToInt32(s); } catch (FormatException) { return defVal; } catch (OverflowException) { return defVal; } } public static int ToInt32(this object s, int defVal = default) { if (s == DBNull.Value) s = defVal; return s.ToString().ToInt32(); }
Git相关异常:
1.warning: LF will be replaced by CRLF in Arvin.Other/Arvin.Other.csproj.
git config --global core.autocrlf false
windows下进行 git add ./ 时可能出现该异常导致无法将文件提交到暂存区,更改配置后就可以正常提交,然后就按部就班进行Git提交推送就行了
该异常是由于不同操作系统或运行环境行尾化标准不一致导致的,当core.autocrlf为true时,会根据windows、Linux等操作系统不1.一致进行LF与CRLF之间的转换,false后就无需关心此问题,当然,只限于在windows下,Linux没有验证过不发表意见
服务器相关异常:
IIS:
异常:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny")......
原因:IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改
处理:
节点名称为handlers C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
节点名称为modules C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
异常:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加MIME映射
处理:
win10:控制面板->打开或关闭windows功能->Internet信息服务->万维网服务->应用程序开发功能,勾选上“.net扩展性”、“ASP.NET”、“ISAPI扩展”、"ISAPI筛选器"
winserver2012:服务器管理器->添加角色和功能->服务器角色->Web服务器(IIS)->应用程序开发->勾选上“Asp.Net 4.5”
暂时就这样,未完待续...