在SSMS 2014中编写SQL查询时,我会得到一个弹出窗口" Visual Studio遇到异常.这可能是由扩展引起的 "以及我可以使用/ log参数运行应用程序的提示并检查在我的用户的AppData目录中的某处创建了ActivityLog.xml文件.
在此弹出窗口之后,IntelliSense停止更新,并且打开/关闭它没有任何效果(任何错误仍然用红色波浪线等加下划线,包括它们的鼠标悬停弹出窗口无限期保留).请注意,即使脚本中没有任何错误,也会发生这种情况
但这并不是真正的问题,因为我得到" 值不在预期范围内 "错误我每次推倒BACKSPACE KEY,虽然Delete键工作得很好.
在我开始使用该应用程序几个月后才出现此问题.
到目前为止,解决方法是将查询复制到新的查询窗口(立即工作),或等待它随机停止.因此问题被隔离到查询窗口.
重现步骤:
似乎绝对没有共性,因为它发生在语法正确/不正确的语句和长/短查询(从单个SELECT语句到数千行存储过程)的所有组合中.它也发生在不引用任何用户定义实体的语句中(例如,从系统表中选择).
故障排除步骤:
查看日志文件,它们可能在最后一条消息(比我在查询窗口中的时间更长的时间)和使用退格键引起的异常之间有两个小时的间隔.
以下步骤由我公司的IT部门执行:
然后:
我似乎是唯一一个有这个问题的人,因为我公司的IT部门之前没有见过,而且所有Google搜索错误消息都没有结果(我没有使用SSIS).这已经困扰了我一个多月了,让我发疯了.
谢谢.
更新我在编辑JavaScript时在Visual Studio 2013中遇到了类似的棘手行为,它甚至抛出了一个错误,我认为这与退格问题之前SSMS中抛出的第一个错误相同(但我点击太快并在阅读前关闭它) .
ActivityLog.xml中的示例堆栈跟踪
<entry>
<record>1172</record>
<time>2017/01/16 19:33:02.289</time>
<type>Error</type>
<source>Editor or Editor Extension</source>
<description>
System.ArgumentException: Value does not fall within the …Run Code Online (Sandbox Code Playgroud) 我有一个像下面这样的类结构
abstract class AMyAbstractClass {
public readonly int MyReadonlyField;
public int MyReadonlyProperty { get; }//read-only auto-property (syntactic sugar)
}
class MyConcreteClass : AMyAbstractClass {
MyConcreteClass() {
this.MyReadonlyField = 1;
this.MyReadonlyProperty = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
抛出编译错误
无法将只读字段分配给它(在构造函数或变量初始化程序中除外)
和
无法将属性或索引器'AMyAbstractClass.MyReadonlyProperty分配给它-只读
分别。
在第一种情况下,错误消息是错误的,因为它是在构造函数中设置的!
我可以想出具有不可变对象属性的替代方法,但是为什么不允许这种情况呢?这种封装有哪些好的做法?