8

我已经在一个新的 Intranet 站点上工作了几个星期,一切都按预期工作。如果我对我的 .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 更新有关,但这似乎没有任何意义。我看不到这样一个重大错误被忽视了吗?为什么 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>

任何建议将不胜感激,我希望解决方案能帮助其他在最近更新后可能遇到相同问题的人。

4

1 回答 1

0

听起来像是权限问题。映射的网络驱动器使用的凭据没有足够的权限,或者 IIS 应用程序池标识没有对该文件夹的权限。

于 2014-12-09T20:19:49.107 回答