在MySQL用EF6遇到的那些坑
作者:V君 发布于:2017-6-20 16:12 Tuesday 分类:挖坑经验
把在 MySQL 用 EF 遇到的各种坑记下来,挂起假古文
首次创建迁移(初始迁移)之前应做好预处理:
避免生成的SQL语句有架构名称(dbo), 不这样做将会在今后的更新迁移中掉坑.
不要等你发现之后再加上这句, 要重建数据库才能避免更多问题.
(先记一个,有新的坑再追加, (´∀((☆ミつ)
活久见:有些异常是不能被catch(Exception)捕获的,你得把catch参数去掉
作者:V君 发布于:2017-6-14 0:25 Wednesday 分类:折腾手记
TL;DR:
当你发现本应被捕获的异常却被无视 try-catch 语句时,
你应该试着去掉 catch(Exception ex) 中高亮的部分
写成 try {....} catch{....} 这种写法将不能直接取得异常实例,
你可以将上下文对象值记录下来作为排查线索。
本例:
将 MVC 5.2.3 站点部署到装了 mono 4.2.2 的Debian@树莓派。
首先就遇到一大堆兼容性问题。去掉一系列不兼容的组件。
(ApplicationInsights系列、CodeDom系列)
总算能报出些看起来有点线索的异常。
System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (System.Reflection.Assembly,bool)
at System.Reflection.Assembly.GetTypes () <0x721db540 + 0x00023> in <filename unknown>:0
at Ease.Ioc.IocManager.RegisterInterface (System.Reflection.Assembly[] assemblies, System.Type iface,
System.Func`1 lifetimeManager) <0x721db0c0 + 0x000fb> in <filename unknown>:0
at Ease.Ioc.IocManager..ctor () <0x721fb130 + 0x00283> in <filename unknown>:0
at Ease.Ioc.IocManager..cctor () <0x721faff8 + 0x00027> in <filename unknown>:0
这是模仿 ABP 在当前应用域中的所有程序集中寻找实现了指定接口的类,然后加到 IoC 容器。
(哎……谁让 ABP 还不支持 mono 呢。。。)
在对某个程序集调用 GetType 时爆炸了……
于是在其周围加上常规异常处理 try-catch(Exception) 试图找出有问题的程序集。
然而异常依旧引发,就跟没写 try-catch(Exception) 一样……
试着调整方法结构,避免一些在首次访问方法就引发异常的状况 —— 无果……
心一横,去掉 catch 语句的参数,记下当前调用 GetTypes 的程序集。
try
{
types.AddRange(asm.GetTypes().Where(p => false == p.IsAbstract && false == p.IsInterface && iface.IsAssignableFrom(p)));
}
catch
{
throw new Exception("Asm load fail?" + asm);
}
功夫不负有心人 or 瞎猫撞上死耗子? bingo! 抓到你啦!
Asm load fail?System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
咋办? 没办法哇! 试着把引用干掉看看吧…… 果然就没事儿了!
稍稍去了解一下那玩意儿,发现是一堆辅助类, 反正一时半会也用不上。
于是就这样,用作类似 Hello world 的站点首页就成功呈现出来啦!
—— 尽管是乱码…… 因为偷懒直接输出 Content 嘛! 接下来可以慢慢折腾啦!
标签: 软件开发 树莓派 C# linux mono 运行时错误
使用Adobe Premiere制作视频镂空叠加
作者:V君 发布于:2017-6-9 22:00 Friday 分类:折腾手记
首先用一张图来表示咱想说的啥,然后再到TL;DR吧 (pia~~
TL;DR:
1) 按叠加素材层次添加到序列;
2) 从效果中选择「RGB差值键」(有的是「RGB差异键」?),拖放到序列选中需要镂空处理的素材;
3) 在效果编辑器吸取要镂空的颜色;
4) 调整相似性以及圆滑程度,达到消除毛刺的镂空叠加效果
详(ting)细(wo)操(che)作(che)点进来看
排查ASP.NET响应迟钝.用DebugDiag分析转储,再用WinDbg+sosex查看调用参数
作者:V君 发布于:2017-6-9 17:01 Friday 分类:填坑经验
WEB应用程序出现响应很慢甚至卡死的现象,
Server Admin 通过 DebugDiag 分析转储发现有个请求特别耗时间 (一个小时以上)
于是锅放到我这里辣.
DebugDiag得出堆栈已经显示具体代码位置了,
想知道哪些数据被操作,还需要知道传入了哪些参数,这时候必须请出WinDbg+sosex了.
参考其 sosex 的 readme.txt 或 MSDN文章 得知 !mk 命令可以查看当前线程调用堆栈
要切换当前线程 使用 ~*s 命令 (更多命令参见 windbg.info文章 )
搞起! 先 .load sosex 再 ~*s 然后 !mk 这样就可以看到刚才的堆栈了,确保没选错线程
然而参数还没出来... 别急,呔! !mdso 列出当前线程堆栈上下文对象值
这个命令支持使用参数 /t:类名 来筛选结果. 这次排查过程顺利得有些出乎意料哇 乂目.
记一次COOKIE域造成ASP.NET会话丢失
作者:V君 发布于:2017-5-24 16:05 Wednesday 分类:填坑经验
TL;DR
从浏览器 COOKIES 开始检查, 注意每次请求时 asp.net_sessionid 是否有变化,
注意响应 COOKIES 是否有设置 Domain. 于是发现为了兼容子域名被设定了值.
加上调试条件编译跳过就解决了.
稍稍扯扯:
最初,发现 ajax 请求没有返回预期内容, 调试发现 Session 里面的东西变 null 了.
第一反应是Session配置问题或可能被 Abandon 过, 全文检索代码没发现被调用.
先排除被 Abandon 这个可能.
去 web.config 看看 Session 配置, 切换了 InProcess 和 StateService 模式都不奏效.
然后观察每次请求上下文,发现 SessionId 每次都会变,COOKIE asp.net_sessionid 也每次都变
最后只好把焦点放到浏览器了, 仔细观察 COOKIE 响应状况发现了原因.
blogger
Google Web Translator
热门日志
随机日志
最新日志
最新评论
- V君
@Quartz:(出现)... - Quartz
怎么不见人了呢... - V君
@Soar:DHCP 协议相... - V君
@Soar:当然是非... - Soar
@V君:谢谢 有空... - Soar
搞一个 1230v3+B85... - V君
@Soar:另外,也可... - V君
@Soar:iscsi服务端... - Soar
难怪这么卡,尤其... - Soar
clone了源码,提示...
分类
存档
- 2024年5月(1)
- 2023年7月(1)
- 2023年5月(1)
- 2022年11月(1)
- 2022年10月(1)
- 2022年9月(1)
- 2022年8月(1)
- 2022年7月(1)
- 2022年6月(1)
- 2022年5月(2)
- 2022年4月(1)
- 2022年3月(1)
- 2022年2月(1)
- 2022年1月(1)
- 2021年12月(1)
- 2021年11月(1)
- 2021年10月(1)
- 2021年9月(1)
- 2021年8月(1)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(1)
- 2021年4月(1)
- 2021年3月(1)
- 2021年2月(1)
- 2021年1月(1)
- 2020年12月(1)
- 2020年11月(1)
- 2020年10月(2)
- 2020年9月(1)
- 2020年8月(1)
- 2020年7月(1)
- 2020年6月(1)
- 2020年5月(1)
- 2020年4月(2)
- 2020年3月(3)
- 2020年2月(1)
- 2020年1月(1)
- 2019年12月(1)
- 2019年11月(1)
- 2019年10月(1)
- 2019年9月(1)
- 2019年8月(2)
- 2019年7月(1)
- 2019年6月(1)
- 2019年5月(1)
- 2019年4月(1)
- 2019年3月(1)
- 2019年2月(1)
- 2019年1月(2)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(3)
- 2018年9月(4)
- 2018年8月(6)
- 2018年7月(4)
- 2018年6月(1)
- 2018年5月(2)
- 2018年4月(2)
- 2018年3月(3)
- 2018年2月(1)
- 2018年1月(1)
- 2017年12月(1)
- 2017年10月(2)
- 2017年9月(1)
- 2017年8月(2)
- 2017年7月(1)
- 2017年6月(5)
- 2017年5月(2)
- 2017年4月(2)
- 2017年3月(3)
- 2017年2月(2)
- 2017年1月(2)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(3)
- 2016年9月(4)
- 2016年8月(2)
- 2016年7月(4)
- 2016年6月(3)
- 2016年5月(1)
- 2016年4月(4)
- 2016年3月(3)
- 2016年2月(1)
- 2016年1月(5)
- 2015年12月(4)
- 2015年11月(5)
- 2015年10月(1)
- 2015年9月(6)
- 2015年8月(4)
- 2015年7月(1)
- 2015年6月(6)
- 2015年5月(3)
- 2015年4月(3)
- 2015年3月(2)
- 2015年2月(1)
- 2015年1月(3)
- 2014年12月(1)
- 2014年11月(1)
- 2014年10月(1)
- 2014年9月(3)
- 2014年8月(1)
- 2014年7月(1)
- 2014年6月(1)
- 2014年5月(3)
- 2014年4月(1)
- 2014年3月(1)
- 2014年2月(2)
- 2014年1月(1)
- 2013年12月(2)
- 2013年11月(2)
- 2013年10月(1)
- 2013年9月(3)
- 2013年8月(14)
- 2013年7月(7)
- 2013年4月(1)
- 2013年3月(4)
- 2013年2月(6)
- 2013年1月(6)
- 2012年12月(8)
- 2012年11月(6)