SignalR net45 在特定 user/machine 组合上给出 401 Unauthorized
SignalR net45 gives 401 Unauthorized on specific user/machine combinations
我们最近将一个 WPF 应用程序及其所有 NuGet 依赖项更新为 .NET 4.5.2,发现一些用户从 SignalR 收到 HTTP 401 未经授权的错误。正在通过 PrincipalUserIdProvider 使用 Windows 身份验证。
连接到 SignalR 后,我在第一个 POST 到 SignalR 时收到 401 错误,但有很多原因导致这是一个奇怪的问题:
- 当我有 Fiddler 运行ning
时它可以工作
- 当我 运行 Citrix 上的应用程序时它有效
- 当我 运行 应用程序 运行 在另一个人的 PC 上
- 当我登录到别人的 PC 时它有效
- 它在我 运行 .NET 4.0 上的旧版本客户端(仍然连接到同一服务器)时有效
- 它在 QA 中有效(但不是一切?)
- 当其他人使用我的电脑 运行 应用程序时,它会起作用
该问题仅出现在 user/machine 组合的一小部分,但对于这些设置,401 出现的概率为 100%。 Win7和Win8.1客户端均出现。服务器没有安装 websockets。
对可能出现的问题有什么建议吗?
我不知道为什么,但引用 SignalR 客户端 dll 的 net40 副本而不是 net45 副本可以解决问题。
我删除了对 Microsoft.AspNet.SignalR.Client.dll 的引用,并使用我的 NuGet 包文件夹中的 net40 dll 重新添加了引用:Microsoft.AspNet.SignalR.Client.2.2.0\lib\net40\Microsoft.AspNet.SignalR.Client.dll
我们最近将一个 WPF 应用程序及其所有 NuGet 依赖项更新为 .NET 4.5.2,发现一些用户从 SignalR 收到 HTTP 401 未经授权的错误。正在通过 PrincipalUserIdProvider 使用 Windows 身份验证。
连接到 SignalR 后,我在第一个 POST 到 SignalR 时收到 401 错误,但有很多原因导致这是一个奇怪的问题:
- 当我有 Fiddler 运行ning 时它可以工作
- 当我 运行 Citrix 上的应用程序时它有效
- 当我 运行 应用程序 运行 在另一个人的 PC 上
- 当我登录到别人的 PC 时它有效
- 它在我 运行 .NET 4.0 上的旧版本客户端(仍然连接到同一服务器)时有效
- 它在 QA 中有效(但不是一切?)
- 当其他人使用我的电脑 运行 应用程序时,它会起作用
该问题仅出现在 user/machine 组合的一小部分,但对于这些设置,401 出现的概率为 100%。 Win7和Win8.1客户端均出现。服务器没有安装 websockets。
对可能出现的问题有什么建议吗?
我不知道为什么,但引用 SignalR 客户端 dll 的 net40 副本而不是 net45 副本可以解决问题。
我删除了对 Microsoft.AspNet.SignalR.Client.dll 的引用,并使用我的 NuGet 包文件夹中的 net40 dll 重新添加了引用:Microsoft.AspNet.SignalR.Client.2.2.0\lib\net40\Microsoft.AspNet.SignalR.Client.dll