我已经在一个新的内部网站上工作了几个星期,一切都按预期工作.如果我对我的.aspx页面进行了任何更改(添加了原始文本,新控件等),然后在VS(F5)中对它们进行了测试,则所有更改都会立即反映在浏览器中.任何简单的添加<br>标记或复杂的添加一组嵌套控件都会在调试重启时显示.
今天早些时候,一切正常.然后我决定想要玩一些AjaxControlToolkit好东西.我最终安装了今天发布的VS更新2(http://www.microsoft.com/en-us/download/details.aspx?id=38188),同时我还在更新NuGet并从那里安装AjaxControlToolkit.
我添加了一些工具,包括ScriptManager和UpdatePanel,一切都按预期工作.然后,我进行了一些更改,并意外添加了第二个ScriptManager.当我去调试/运行时,它当然失败了,因为你不能在一个页面上有多个,所以我删除了额外的一个并再次运行.它再次给出了同样的失败.我经历了并确保我不小心在某个地方添加了另一个,在我的项目中搜索了所有文件并且它是唯一的实例,所以我将其评论并再次运行.一样.我尝试了一些事情,最终重新启动IIS和VS,然后页面按预期运行.
从那时起,我在项目中的任何文件中所做的任何更改都不再更新,而不退出IIS并重新启动它.项目中新的,非常基本的aspx或html文件也做同样的事情.然后我在更新VS之前恢复到恢复点,并在我添加AjaxControlToolkit之前的前一天使用了我的站点的备份,但问题仍然存在.
这里发生了什么?我觉得它与VS更新有关,但这似乎没有意义.我看不出这样一个主要的错误被忽视了?为什么IIS不提供更新的页面?
浏览器中的Ctrl + F5不反映更改.重建整个解决方案并不反映变化.关闭和重新打开浏览器不会反映更改.更改我的web.config不会反映更改.创建一个全新的空网站,问题仍然存在.更改为Visual Studio开发服务器而不是IIS,问题仍然存在.
我发现强制正确,更新的页面正确服务的唯一方法是在IIS中"停止站点"然后重新启动,这对于检查页面中任何内容的微小更改来说简直太麻烦了.
我使用的是Visual Studio 2012 Express,IIS Express,.NET 4.0,C#代码隐藏,文件位于Intranet文件系统(映射到x :),与我的实际生产托管服务器分开.
为了以防万一(虽然我认为这不重要,因为即使有一个新的网站现在也出现问题)这里是我的web.config(这是非常基本的):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off" />
<httpRuntime />
<pages>
<controls>
<add tagPrefix="ttw" src="~/Controls/CustomerInformation.ascx" tagName="CustInfo" />
<add tagPrefix="ttw" src="~/Controls/CircuitInformation.ascx" tagName="CktInfo" />
</controls>
</pages>
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=EmulateIE9" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激,我希望解决方案将帮助其他可能在最近更新后遇到相同问题的人.