我使用.NET 4.0开发了一个AJAX密集的ASP.NET Web应用程序,使用TFS作为源代码控制。我们最近将我们的开发工具升级为独家使用VS2010和TFS 2010,但现在每次检出文件时,我们都会看到visual studio重新加载所有符号,并删除所有会话。
在输入一些错误记录代码后,我们发现回收的原因是它认为每当我们结账时App_offline.htm都会发生变化。这在项目的任何地方都不存在,我的SO-fu已经找到了一些关于SQL Express的信息,使得这个文件被创建和删除,所以这可能就是这里发生的事情。
看起来我安装了SQL-Express,但即使禁用正在运行的服务,问题仍然存在。
有没有办法阻止退出/删除此文件,如果这确实发生了什么?每当我查看文件时,让应用程序回收都是令人沮丧的......
答案 0 :(得分:14)
我发现了一种解决方法。
1)转到Visual Studio缓存app_offline.htm文件的位置 C:\ Users [user] \ AppData \ Roaming \ Microsoft \ VisualStudio \ 11.0 \(用您的用户名替换[user])
2)删除app_offline.htm文件
(注意:仅此一项无法解决,因为VS在找不到文件时会重新生成文件)
3)创建一个名为app_offline.htm的目录(DIRECTORY!)
这实际上会导致尝试使用该文件的进程出错,因为它不是文件而名称冲突意味着VS无法尝试重新创建该文件。幸运的是,错误没有不必要的副作用。
现在继续使用VS和Team Foundation Server,并且不要经常重新加载appdomain!
这当然意味着任何发布过程都可能不会使用app_offline.htm文件,因此您需要密切关注它。
答案 1 :(得分:1)
由于我也有问题,所以我决定尝试跟踪它。首先,我发现如果我的数据库连接处于脱机状态并单击服务器资源管理器中的“刷新”按钮,它将在我的网站的根目录中创建app_offline文件,然后将其删除。我重新制作了好几次。
我实际上在服务器资源管理器中有3个数据库连接。如果我断开与远程SQL服务器上的数据库实际连接的2个连接,则刷新时 不会生成app_offline文件。如果我从LOCAL .MDF文件断开连接,它只生成app_offline文件,然后刷新(重新连接到该.mdf文件,红色断开的X消失)。果然,每次重新连接到该本地数据库后,app_offline.htm文件都会显示在我的回收站中。
更进一步,我分离了本地数据库(.mdf文件)并将文件移动到我的桌面。然后重新启动VS2010并且无法重新生成错误。我把文件放回去,重新建立连接,然后再次开始获取app_offline。然后我禁用了SQLExpress服务,并且确实遇到了其他一些错误,但是即使禁用了SQLExpress服务,我仍然在我的回收站中获得了app_offline 。
所以,我想我的答案是尽可能摆脱.mdf本地数据库。这对我来说不是一个好选择,因为当我远程处理代码时我需要本地数据库,但如果你不需要任何本地数据库,也许你可以尝试删除它们。
注意:我使用的是VS2010(有时是VS2008)和SQLExpress 2008 RS。我不使用TFS。
答案 2 :(得分:0)
似乎答案是使用Web应用程序项目,而不是Web站点项目。
stopping app_offline.htm from being created and deleted at each build?
答案 3 :(得分:0)
也许,有人在app_offline文件中签入,当你获得项目时,文件就会出现。 查看您的源存储库。