【问题标题】:SignalR/CORS conflicting web.config requirementsSignalR/CORS 冲突的 web.config 要求
【发布时间】:2018-02-26 16:37:31
【问题描述】:

我正在开发一个已经存在大约 3 年的网站。 它有网站、ASP.Net Web 表单和 Web API 2。 该站点位于一个域 (http://localhost:54555) 上,API 位于另一个域 (http://localhost:54666/)

在过去 3 年中,该网站和 API 一直很好地协同工作。 我的任务是实现 SignalR。 我已经设法使基础工作正常进行 - 我可以将用户注册到他们的组。 但我在 Chrome 开发者工具 (F12) 中注意到,我实际上并没有在我预期的时候使用 WebSockets。

经过一番调查,我发现将其添加到网站的 web.config 文件中可以解决我的问题......确实如此。这是我添加到 web.config 文件中的内容;

<httpRuntime maxRequestLength="40960" targetFramework="4.5.1" requestValidationMode="2.0" />

虽然这解决了我的 SignalR 问题,但我遇到了一个新问题,但现在我想我会尝试将上面的内容简化为看看;

<httpRuntime targetFramework="4.5.1" />

不幸的是,这并没有改善任何事情。

所以我现在面临的问题是,对 Web API 的调用现在因消息而失败;

Failed to load resource: the server responded with a status of 401 (Unauthorized)

我什至不知道如何进行谷歌搜索。这是CORS问题吗?是 SignalR 的问题吗?一个看起来很简单的设置怎么会对网站的行为产生如此大的影响?

到目前为止,我唯一注意到的是,更改此设置后,其中一个 cookie 的大小会有所不同。有问题的 cookie 称为“ClientLogin”,当我可以成功调用 API 时,它的大小为 244,当我无法成功调用 API 时,它的大小为 182。这感觉像是一个需要调查的潜在领域,但同样,我不确定我应该寻找什么。

感谢所有帮助,干杯。

【问题讨论】:

    标签: webforms cors asp.net-web-api2 signalr


    【解决方案1】:

    终于明白了。

    添加;

    <httpRuntime targetFramework="4.5.1" />
    

    ...也到 Web API web.config。

    【讨论】:

      猜你喜欢
      • 2012-09-11
      • 1970-01-01
      • 2021-10-18
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-07
      • 1970-01-01
      • 2017-02-09
      相关资源
      最近更新 更多