在Visual Studio 2010中,随机禁用了编辑aspx/ascx文件的功能?

42
我将在Visual Studio 2010中调试网站并编辑*.aspx或*.ascx文件,但突然间它会锁定,我无法进行任何编辑。没有任何消息提示,我只是不能输入或进行任何更改。
唯一重新开始编辑的方法是停止调试,关闭编辑窗口,然后找到我正在编辑的文件并重新打开它。这非常麻烦。
我的同事也遇到了同样的问题,所以显然不是我特定设置的问题。
这是什么原因,我们该如何解决?
< p > 注意1:我已经在这里向Microsoft报告了此问题。如果您也遇到了这个问题,请前往那里并投票支持该错误报告。

注意2:至少在我的情况下,这与VSS无关。我们使用VisualSVN,它不使用文件系统级别的锁定来标记文件为已检出。


2
我似乎有一个类似的问题,但在我的情况下,VS2010并没有完全锁定,只是某些键无法使用。回车、退格和箭头键停止工作。这只发生在我处于调试模式时。我还没有找到确切的触发器。 - William Niu
2
我刚发现,编辑的文件不需要关闭就可以重新启用键,只需要切换到另一个文件然后再切回来即可。我认为打开任意文件并关闭也可以。 - William Niu
你使用的是哪个操作系统?而且很重要的是,它的架构是什么?例如:Win7 x64。 - Robert MacLean
顺便说一下,微软最终似乎已经能够重现这个问题,并且正在再次解决它。(请参见以上的MS Connect链接) - Herb Caudill
1
终于发布了一个补丁(耶!)。Joost Schepel的回答下面包含了链接。 - mkataja
显示剩余21条评论
13个回答

11

尚未进行全面测试,但似乎已经解决了问题。 - Herb Caudill
终于!!耶...没想到他们会修复那个烦人的 bug。 - OlafW
链接似乎确实已经失效了,但是Herb提到的方法可行(停止调试,关闭所有文档,重新打开)。我尝试了重启VS并没有用,你得关闭这些文档。 - James

4
我找到了一个临时解决方案: 右键单击文件,选择“打开方式...”。现在选择“源代码(文本)编辑器”,你可以再次编辑文件,但没有智能感知 :-( 但你不需要外部编辑器。
尽管如此,我们仍然需要等待微软找到更好的解决方案。

我暂时将这个标记为答案,因为这是我目前找到的最佳解决方法。我刚刚将HTML编辑器设置为.aspx和.ascx文件的默认编辑器。这很遗憾,因为你失去了许多VS的好处 - 不仅是智能感知,还有其他相关的好处,比如自动格式化。但这比定期关闭并重新打开所有内容以继续编辑我的标记要好。 - Herb Caudill

1

我遇到了同样的问题,并发现它只在 .aspx 页面中存在一个 "eval" 语句 (用于数据绑定,例如在网格视图中) 在 <a> 标签内部。一旦我删除了 "eval" 语句,在调试时页面就变得可编辑了。

导致页面在调试时只读的代码示例:

<a href='<%# Eval("URL") %>' target="_blank" 
title='<%# Eval("URL", "Open url: {0}") %>'><b>'<%# Eval("Text") %>'</b></a>

替换代码示例,可在调试时使页面再次可编辑:

<asp:HyperLink NavigateUrl='<%# Bind("URL") %>' runat="server" ID="hlURL" Target="_blank"
ToolTip='<%# Bind("URL", "Open url: {0}") %>' Text='<%# Bind("Text") %>' Font-Bold="true" />

1

我刚遇到了同样的问题。当代码页面消失时,我点击调试->重新启动。它会重新启动调试过程,并显示我打开的所有页面。


1
作为一种解决方法,我使用“浏览方式...”(在“解决方案资源管理器”中右键单击)来加载和查看页面,以便在进行HTML细化时使用。当然,您无法调试代码,但它不会锁定文件,因此在进行设计更改时问题会稍微减少。
我已经在Windows 7、XP上复制了这个问题,包括有和没有源代码安全、MVC项目、Web应用程序项目和网站项目,也包括启用和禁用“编辑并继续”功能,即当使用编辑并继续时,我可以编辑代码但不能编辑ASPX标记!

当然,你可以使用Ctrl-F5(无调试启动)来实现相同的功能。 - Herb Caudill

1
通常这是由于您的版本控制系统使文件只读(即VSS)造成的。进入源代码控制的设置并设置编辑器,以便在编辑时检出文件。
如果不是源代码控制,则是某些东西使文件变为只读,并且您需要找到这个“某些东西”来解决此问题。

谢谢 - 这似乎不是问题所在。首先,我们没有使用VSS,而是使用VisualSVN,它不会锁定文件。我已经检查过了,当发生这种情况时,该文件没有标记为只读。我可以轻松地在记事本中编辑它,并且更改立即在VS中反映出来 - 但是除非我进行停止调试/关闭/重新打开的操作,否则我仍然无法在VS中编辑。 - Herb Caudill
在这种情况下,Heinzi可能是正确的。这可能是VS的一个错误,应该报告 :) - riwalk

1

我在使用VS2010时也遇到了同样的问题,文件锁定随处可见...但是我发现如果我关闭相关文件并重新打开它,我就可以继续编辑,也就是说我不一定需要停止整个程序的运行。


3
谢谢,@devastated - 欢迎来到 Stack Overflow。由于这不是对所发布问题的建议性答案或解决方案,因此将其作为评论回复到问题中会更加恰当。 - Herb Caudill
1
@Herb - 在您获得50个声望之前,您无法对其他人的问题/答案进行评论。 - Jason Berkan
@Jason - 已经注意到了。但是,“我也遇到了这个问题”并不是一个答案。 - Herb Caudill
1
就我个人而言,我的经验与此不同。为了重新获得对aspx/ascx文件的编辑访问权限,我需要停止调试。 - Herb Caudill

1
你和你的同事是否已经安装了Microsoft Office 2007或2010?从CP > 程序和功能中运行Office设置并进行修复。之后重新启动,或者至少注销一次。
如果你不想进行完整的Office重新安装,我可以理解,但如果修复无法解决问题,我建议你这样做。

1
我不明白 - 我的 Office 安装会如何影响 VS2010? - Herb Caudill
1
Visual Studio過去出現過幾個錯誤與MS Office有關。例如,產品之間的共享庫對ASPX文件造成了類似的VS2008鎖定問題,儘管需要重新啟動VS才能繼續工作。在這種情況下,修復或刪除MS Office Web Authoring Components是解決方案。 - Simeon

1

有趣..不知道对于两种类型的Web项目模板是否相同? - IrishChieftain
对于我来说,这是一个ASP.NET MVC 2项目。但正如您在错误报告链接中所看到的,微软已经承认了这个错误,他们将其转发给了开发团队……或者至少更靠近开发团队了;-) - OlafW

0

尝试从解决方案资源管理器中刷新包含该文件的项目。这样应该可以重新启用编辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接