11

当我使用 Visual Studio 在本地调试我的网站时,对 web.config 的更改会毫无问题地生效。

但是,当我对服务器主机(运行 IIS 7.5)上的 web.config 进行相同的更改时,当我在浏览器中加载它时,看起来该站点仍在运行旧版本的 web.config。不会应用新的更改。

我尝试使用 IIS 管理器在服务器上停止和启动我的站点的应用程序池,但仍然没有任何变化。我也尝试过停止和启动 IIS,它也不起作用。

我对 web.config 所做的更改涉及删除块中的条目以允许和拒绝用户。它当前设置为提示输入凭据,如果有效,则可以访问该站点。如果不是,则拒绝访问。我试图做出的改变是允许所有用户访问,而不是提示他们输入凭据。

前:

<authorization>
  <deny users="?" />
  <allow roles="admins" />
  <deny users="*" />
</authorization>

后:

<authorization>
  <allow users="*" />
</authorization>

这是什么原因?

4

7 回答 7

5

您必须重置 IIS。只需打开命令提示符并运行 IISRESET 就可以了。

于 2016-05-11T15:16:43.833 回答
2

我发现如果我尝试直接通过文件系统(在 IIS 服务器上)修改 Web.config,我的更改将无法保存,因此不会应用。如果您可以访问主机服务器上的 IIS,这就是我发现的对我有用的方法:

注意:这些说明基于 Windows Server 2012 上的 IIS 8,但可能仍适用于 IIS 7.5。

  1. 转到主机服务器上的 IIS 管理器
  2. 在站点中向下钻取,直到找到您的应用程序
  3. 使用功能视图,双击授权规则
  4. 使用“操作”面板(右侧)中的“添加允许规则...”“添加拒绝规则...”链接来配置您的所有授权规则。

此过程会为您更新 Web.config。如果您需要编辑或删除规则,请单击适用的规则,然后单击“操作”面板中的“编辑...”或“删除”链接。

我希望这有帮助。

于 2016-01-21T19:38:47.807 回答
0

您是在部署、发布还是复制?确保您的调试和发布设置相同。也有虚拟目录未正确设置且未加载正确的 webconifg 的情况。

于 2013-08-15T21:28:02.833 回答
0

从您的服务器复制 web.config 文件并将其放在本地计算机中并根据您的要求进行修改。然后删除服务器中的 web.config 文件并将修改后的 web.config 从本地计算机复制并粘贴到服务器。

这对我有用,但对我来说连接字符串是问题。

于 2016-06-18T05:48:07.490 回答
0

来自MSDN - Web.Config

对 web.config 文件的任何更改都需要重新启动“Microsoft IIS 管理”服务才能生效。

于 2019-10-01T07:48:31.320 回答
0

也许,也许,也许它对某人有帮助。我也有同样的问题。与 IIS 重置不起作用。与回收 AppPool 不起作用。也许您的驱动器没有可用空间。

有时在我删除一些不需要的文件后这项工作。但我认为重要的原因是许可。我们必须使用记事本之类的编辑器或以管理员身份运行编辑器或 web.Config 需要更改权限才能更改然后更改 Web.config。然后保存。这对我有用。

于 2020-03-28T05:14:22.310 回答
-2

您必须执行以下操作

  1. 单击构建菜单
  2. 选择清洁解决方案
  3. 然后
  4. 选择重建应用程序
  5. 发布文件(代码)

在完成此操作之后,它可以正常工作,没有问题。

反映 IIS 服务的变化

于 2018-10-17T12:49:34.707 回答