微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HTTPS PowerBI 报表服务器到 HTTP SQL Server 数据源 - 错误 401

如何解决HTTPS PowerBI 报表服务器到 HTTP SQL Server 数据源 - 错误 401

我今天刚刚遇到了一个奇怪的问题。我的 PowerBI 报告服务器(本地)以前使用过自证书 SSL。我有从不接受加密连接的远程 sql Server 以导入模式运行的报告。都在同一个域内。前几天我在报表服务器上将 SSL 升级到了 SAN SSL。所有数据源连接保持不变(非 SSL 远程 sql Server)。顺便说一句,我正在运行 2021 年 5 月的报表服务器。今天早上,一位同事报告说数据没有刷新。检查后,我看到计划刷新失败。我尝试在另一个导入模式 PBIX 报告上添加刷新计划。得到一个很大的脂肪“出了点问题”。数据源具有基本凭据,并且在数据源页面上使用基本 sql 登录凭据测试连接成功。但是每当我尝试添加刷新计划时,我都会遇到相同的错误。继续检查日志和详细信息。得到“错误 401”。 详细错误,如果有人感兴趣:

2021-07-07 00:47:55.7026|ERROR|63|发生 OData 异常: System.Net.WebException:请求失败,HTTP 状态为 401: 未经授权。在 System.Web.Services.Protocols.soapHttpClientProtocol.ReadResponse(SoapClientMessage 消息、WebResponse 响应、流响应Stream、布尔值 异步调用)在 System.Web.Services.Protocols.soapHttpClientProtocol.Invoke(String methodName,Object[] 参数)在 Microsoft.sqlServer.ReportingServices2010.ReportingService2010.CreateCacheRefreshPlan(String ItemPath,String Description,String EventType,String MatchData,ParameterValue[] 参数)在 Microsoft.sqlServer.ReportingServices2010.RSConnection2010.c__displayClass136_0.b__0() 在 Microsoft.sqlServer.ReportingServices2010.RSConnection2010.soapMethodWrapper1.ExecuteMethod(Boolean setConnectionProtocol) at Microsoft.sqlServer.ReportingServices2010.RSConnection2010.CreateCacheRefreshPlan(String itemPath,String description,String eventType,String matchData,ParameterValue[] parameters) at Microsoft.ReportingServices.Portal.Services.soapProxy.soapRS2010Proxy.<>c__displayClass19_0.<CreateCacheRefreshPlan>b__0() at Microsoft.ReportingServices.Portal.Services.soapProxy.soapAuthenticationHelper.ExecuteWithWindowsAuth[TReturn](SoapHttpClientProtocol soapClient,IPrincipal userPrincipal,Func1 func) at Microsoft.ReportingServices.Portal.Repositories.SubscriptionService.CreateCacheRefreshPlan(IPrincipal userPrincipal,CacheRefreshPlan cacherefreshPlan) 在 Microsoft.ReportingServices.Portal.ODataWebApi.V2.Controllers.CacheRefreshPlansController.AddEntity(CacheRefreshPlan 实体)在 Microsoft.ReportingServices.Portal.ODataWebApi.Controllers.Reflection.EntitySetReflectionODataController1.Post(ODataPath oDataPath,T value) at lambda_method(Closure,Object,Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__displayClass6_2.<GetExecutor>b__2(Object instance,Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext,IDictionary2 个参数,CancellationToken 取消令牌) --- 从上一个抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext() --- 从上一个抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() --- 从上一个抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Web.Http.Controllers.ExceptionFilterResult.d__6.MoveNext().| 请求 ID = s_9b953a1c-bc48-41f3-ad5b-12e903990663

到目前为止,我可能已经阅读了 95% 的论坛/博客/解决方案/文档。

所以我想,让我们尝试通过 HTTP(端口 80)而不是 HTTPS(端口 443)来完成。它就像一个魅力。顺便说一句,认情况下删除了 HTTP 绑定,只允许使用 HTTPS。我在 PowerBI 桌面的数据源设置中检查了“加密连接已禁用”并刷新+重新部署。 HTTPS 上的相同问题,但在 HTTP 上工作正常。

有人对此问题有永久的解决方案/修复吗?因为不允许在 HTTP 上运行报表服务器。我尝试重新启动两个实例,更改互联网上提到的 reg 值,但没有任何效果。此外,我们启用了 kerberos,并且我们的 Windows 身份验证对于远程 sql Server 数据源非常有效。

感谢大家阅读和使用您的大脑空间。祝你有个美好的夜晚。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。