none
为什么程序在启动的时候总是访问网络? RRS feed

  • 问题

  • 在程序的载入事件;还有没有执行手动操作之前程序是没有任何访问网络的代码,而且它还没执行到启动窗体的载入事件就访问网络,当访问被拒绝后出现如下错误:

    未处理 System.Net.Sockets.SocketException
      Message="提供了一个无效的参数。"
      Source="System"
      ErrorCode=10022
      NativeErrorCode=10022
      StackTrace:
           在 System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
           在 System.Net.Sockets.Socket.Bind(EndPoint localEP)
           在 System.Net.Sockets.TcpListener.Start(Int32 backlog)
           在 System.Net.Sockets.TcpListener.Start()
           在 System.Runtime.Remoting.Channels.ExclusiveTcpListener.Start(Boolean exclusiveAddressUse)
           在 System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.StartListening(Object data)
           在 System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel()
           在 System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback)
           在 System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)
           在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel)
           在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
           在 RegisterManagement.My.MyApplication.Main(String[] Args) 位置 17d14f5c-a337-4978-8281-53493378c1071.vb:行号 81
           在 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
           在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           在 System.Threading.ThreadHelper.ThreadStart()

     

    注:程序中有访问网络的代码,在手动操作之前是没有的,在启动时就访问网络!

    2008年7月1日 3:23

答案

  •  

    这个代码不是你写的,是自动生成的

     

    主要原因是开启了 应用程序框架

     

    至于为什么, 我现在能想到的就是, 在应用程序框架中 (ApplicationBase )  里有个监控网络的事件

    就是那个如果你的网线掉了, 那个事件会有反应, 相反, 网络连接上了, 事件也是会有的

     

    但这个需要注册系统的API, 因此如果注册失败, 会出错很正常的

     

     

     

    但至于为什么会有的有,有的没有,我也说不清楚, 估计是代码里面会自动检查了什么了~

    没有看到源代码,不好说了

    2008年7月1日 12:09

全部回复

  • 看错误好像是RegisterChannel访问网络

    Code Snippet

     

    在 RegisterManagement.My.MyApplication.Main(String[] Args) 位置 17d14f5c-a337-4978-8281-53493378c1071.vb:行号 81

     

     

     

    2008年7月1日 4:22
    版主
  • 有一个, 不过时VB 应用程序框架, 自动生成的, 代码

    注册的时候出现了问题

     

     

      在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel)
           在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
           在 RegisterManagement.My.MyApplication.Main(String[] Args) 位置 17d14f5c-a337-4978-8281-53493378c1071.vb:行号

     

     

    建议楼主,重新编译一下项目,在试试

    2008年7月1日 4:31
  •  G yc 写:

    有一个, 不过时VB 应用程序框架, 自动生成的, 代码

    注册的时候出现了问题

     

     

      在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel)
           在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
           在 RegisterManagement.My.MyApplication.Main(String[] Args) 位置 17d14f5c-a337-4978-8281-53493378c1071.vb:行号

     

     

    建议楼主,重新编译一下项目,在试试

     

    重新编译后我运行编译后的文件,还是访问网络,而且当访问被防火墙拒绝后还说 "XXXX程序 遇到问题需要关闭。我们对此引起的不便表示抱歉。"

    2008年7月1日 8:51
  •  feiyun0112 写:

    看错误好像是RegisterChannel访问网络

    Code Snippet

     

    在 RegisterManagement.My.MyApplication.Main(String[] Args) 位置 17d14f5c-a337-4978-8281-53493378c1071.vb:行号 81

     

     

     

    在程序中我并没加访问网络的代码呀?

    2008年7月1日 8:53
  •  

    这个代码不是你写的,是自动生成的

     

    主要原因是开启了 应用程序框架

     

    至于为什么, 我现在能想到的就是, 在应用程序框架中 (ApplicationBase )  里有个监控网络的事件

    就是那个如果你的网线掉了, 那个事件会有反应, 相反, 网络连接上了, 事件也是会有的

     

    但这个需要注册系统的API, 因此如果注册失败, 会出错很正常的

     

     

     

    但至于为什么会有的有,有的没有,我也说不清楚, 估计是代码里面会自动检查了什么了~

    没有看到源代码,不好说了

    2008年7月1日 12:09