【发布时间】:2021-04-16 15:03:06
【问题描述】:
我在 IIS 中有一个网站,如果我在 Visual Studio(以管理员身份运行)中打开它,应用程序池总是会重新启动——这在我的实时服务器上是个大问题。谁能帮我防止它发生?
我意识到存在预编译的 Web 应用程序,并且 RDPing 到实时服务器并使用 VS 这样并不理想,但我现在无法更改。
我的项目是一个 VB 网站(没有 MVC - 只是 .aspx 页面),我使用 Roslyn 和所有新的语言功能,所以我无法删除 DotNetCompilerPlatform(我认为语言或代码的选择没有任何意义解决问题)。这发生在 Windows 10 和 Server 2016 上。
根据我的调查,我发现了以下内容:
似乎 VS 对 /roslyn 目录中的每个文件都执行了 SetSecurityFile,这会触发 NotifyChangeDirectory 消息。文件的权限保持不变 - VS 会无缘无故地更新它们,这会导致网站重新编译。
我已经清理了 NuGet 包 DotNetCompilerPlatform。我尝试在项目目录上应用宽松的权限(每个人 - 完全控制)。我已经尝试过 VS 2017、2019 和新的 2019 预览版。到目前为止没有任何帮助。我所知道的是,过去不会发生这种情况。
任何想法都将不胜感激。
【问题讨论】:
-
好吧,如果任何 web.config 上的日期发生变化 - 那么您将重新开始。我没有放弃任何允许使用 VS 打开实时活动站点的做法。不知道你以前是怎么逃脱的——但编辑几乎来自 VS 的任何东西,现在也许只是打开就是“触摸”一些 ISS 检测到的文件——因此重新开始。你真的(不是真的)需要在网站的副本上工作 - 而不是现场制作的,因此正如你刚刚经历的那样 - 你根本无法控制重新开始,这是一种高风险的扑克游戏你实现了这一点,并在过去做到了这一点。
标签: asp.net visual-studio iis roslyn