我已经在一个新的内联网站点上工作了几个星期,一切都按预期进行。如果我对 .aspx 页面进行任何更改(添加原始文本、新控件等),然后在 VS(F5) 中测试它们,所有更改都会立即反映在浏览器中。任何像添加
<br>
标签这样简单的内容,或者像添加一组嵌套控件这样复杂的内容都会在调试重新启动时显示。
今天早些时候,一切正常。然后我决定尝试一下 AjaxControlToolkit 的一些好东西。我最终安装了今天发布的 VS SP1 Update 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 更新有关,但这似乎没有意义。我看不出这么大的bug被忽视了?为什么 IIS 不提供更新后的页面?
浏览器中的 Ctrl+F5 不反映更改。整个解决方案的重建并不反映更改。关闭并重新打开浏览器不会反映更改。更改我的 web.config 不会反映更改。创建一个全新的空网站,问题仍然存在。更改为 Visual Studio Development Server 而不是 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>
任何建议将不胜感激,我希望解决方案能够帮助其他在最近的更新后可能遇到相同问题的人。
听起来像是权限问题。映射的网络驱动器使用的凭据没有足够的权限,或者 IIS 应用程序池标识没有该文件夹的权限。