gpt4 book ai didi

c# - Microsoft.Reporting.WinForms 报告查看器控件错误尝试以其访问权限禁止的方式访问套接字

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:32 25 4
gpt4 key购买 nike

我成功地使用了 WebForms 报表查看器控件,所以我有点惊讶地发现尝试在 WinForm 报表查看器控件 中做完全相同的事情失败了...

我在 inner 异常中得到一个 Sytem.Net.WebException “无法连接到远程服务器” >System.Net.Sockets.SocketException尝试以访问权限禁止的方式访问套接字 (ip_address):80”。 (其中“(IP_address)”是我要使用的地址。)

关于套接字异常的 Google 搜索往往落在 Stack Exchange 问题上,结果包括以下内容:

  • 防火墙拦截
  • 必须以管理员身份运行(用套接字做一些事情)

(来自结果如an attempt was made to access a socket in a way forbbiden by it's access permissions. why?)

这给了我一个线索。特别是,我对防火墙 阻止概念很感兴趣。我想知道的是,SSRS 报告查看器控件或底层 soap 层是否真的试图将我的请求从 HTTP/port-80 重定向到 HTTPS/port-443?

当我在浏览器中尝试时,我确定端口 443/HTTPS 没有为我访问该站点。我要从一个网络转到另一个网络,我猜该端口在该级别已关闭,但无论如何,我非常确定 SSRS 报告服务器未针对 SSL/HTTPS 配置。

我想再次声明,我可以成功地使用 Web 表单报表查看器控件来访问和显示报表。

只有 Windows 报告查看器控件显示此问题。这是堆栈跟踪中的几个部分,让我想知道原因是否是尝试使用 SSL 而不是我给它使用的东西。请注意有关 SetConnectionSSLForMethod 和类似内容的部分。

System.Net.WebException was unhandled
HResult=-2146233079
Message=Unable to connect to the remote server
Source=Microsoft.ReportViewer.WinForms
StackTrace:
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods()
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname)
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.SetConnectionSSLForMethod(String methodname)
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.ProxyMethodInvocation.Execute[TReturn](RSExecutionConnection connection, ProxyMethod`1 initialMethod, ProxyMethod`1 retryMethod)
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID)
at Microsoft.Reporting.WinForms.SoapReportExecutionService.LoadReport(String report, String historyId)
at Microsoft.Reporting.WinForms.ServerReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.ServerReport.GetParameters()
at ScheduleRunner.ReportHelper.GetParameters(String reportServerUrl, String reportPath) in C:\VS\Projects\Web\ScheduleRunner\ReportHelper.cs:line 27
at ScheduleRunner.ScheduleRunner.Start() in C:\VS\Projects\Web\ScheduleRunner\ScheduleRunner.cs:line 75
at ScheduleRunner.Program.Main(String[] args) in C:\VS\Projects\Web\ScheduleRunner\Program.cs:line 14
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
ErrorCode=10013
HResult=-2147467259
Message=An attempt was made to access a socket in a way forbidden by its access permissions (ip_address):80
NativeErrorCode=10013
Source=System
StackTrace:
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
InnerException:

如果这确实是强制使用 SSL,那么我该如何防止呢?我正在使用 HTTP,仅使用查看器本身就无法控制 soap 层。

我只想获取报告参数,特别是查看它们的默认值,因为这些参数可能包含由表达式计算和不断变化的参数。

我实际上打算使用这些作为调用基于 url 的访问模式的一部分以获取导出的报告。

在另一个主题上,我可能还需要检查报告是否有某些隐藏参数,因为我可能想提供它们,但前提是它们存在。但我什至还没有到那部分,因为我无法让 winforms 查看器连接,即使 Web 表单查看器连接正常,两者都从我的机器本地运行以进行开发。

UPDATE 1/10/2017 我开始注意到更简单代码的其他问题。似乎无法使用 webclient 连接到任何东西......

最佳答案

我简化了我的尝试,发现即使是一个非常简单的网络客户端请求也会因同样的错误而失败。

经过大量故障排除后,我开始想知道我可以关闭或卸载什么以进一步简化我的问题。防病毒软件始终是解决问题的好目标。

我确实发现杀死 Kaperski 确实解决了我的问题,即使它没有运行防火墙或各种其他组件。即使其他运行 Windows 10、Visual Studio 2015 和 Kaperski 的开发人员似乎没有遇到同样的问题。

关于c# - Microsoft.Reporting.WinForms 报告查看器控件错误尝试以其访问权限禁止的方式访问套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41556217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com