【发布时间】: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