首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >热重新加载应用更改但不刷新Visual Studio 2022中的页面

热重新加载应用更改但不刷新Visual Studio 2022中的页面
EN

Stack Overflow用户
提问于 2021-11-25 22:16:07
回答 2查看 449关注 0票数 0

我刚刚将一个.NET 5应用程序迁移到了.NET 6,并且正在尝试热重新加载。

当我运行我的应用程序,更改一个值并点击热重新加载按钮(或使用保存时热重新加载选项)时,Visual Studio通知我“代码更改已成功应用”:

尽管如此,这些变化并没有反映在我的应用程序上。我已经使用完整的IIS、IIS Express和dotnet cli运行了这个应用程序,尽管它们之间没有区别。页面根本不会重新加载。

EN

回答 2

Stack Overflow用户

发布于 2021-11-25 22:16:07

我一直在与此作斗争,直到遇到an article by Scott Hanselman,它描述了使用限制性内容安全策略(CSP)可能会导致热重新加载问题。

热重载在.NET 6中的工作方式是,它在结束</body>标记之前插入一个脚本(旁注:如果没有正文标记,热重载也不会起作用)。此脚本设置到服务器的websocket连接,以侦听作为热重新加载过程的一部分所做的更改。如果您在CSP中指定了ConnectSources的白名单,但该白名单不包含指向您的开发服务器的websockets地址,您将在控制台中收到类似以下错误的信息:

在您的云服务器中添加预期的ConnectSources将会解决控制台中的错误,热重载应该会重新开始工作。注意,我正在使用流行的NWebsec包来设置我的CSP。

代码语言:javascript
运行
复制
    var customConnectSources = new List<string>
    {
        "https://*.signalr.net" // example
    };

    if (env.IsDevelopment())
    {
        // make exceptions to allow hot reload to work
        customConnectSources.Add("ws://localhost:*");
        customConnectSources.Add("wss://localhost:*");
    }

    app.UseCsp(options => options
        .DefaultSources(s => s
            .Self())
        .ConnectSources(s => s
            .Self()
            .CustomSources(customConnectSources.ToArray())));
票数 1
EN

Stack Overflow用户

发布于 2021-12-20 19:34:27

我也在努力使热重新加载工作,原因与ajbeaven的答案中的原因相同(ws是不允许‘self’的)。将其添加到index.cshtml或_Layout.cshtml中的部分会有所帮助。此外,如果偶然使用IdentityServer项目,则在SecurityHeaderAttributes.cs中设置CSP,并忽略cshtml文件中的值。

代码语言:javascript
运行
复制
<meta http-equiv="Content-Security-Policy" content="connect-src ws://localhost:*;"> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70117801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档