注册 登录
编程论坛 VB.NET论坛

为何总是要出现:指定的网络名不再可用

梦幻倩影 发布于 2016-09-23 11:41, 4614 次点击
为何总是要出现:指定的网络名不再可用

下图中的(新增功能)代码执行前3-4次是正常的,但多执行几次就出错,提示如下:
只有本站会员才能查看附件,请 登录
10 回复
#2
梦幻倩影2016-09-23 11:45
有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************
System.Data.SqlClient.SqlException (0x80131904): 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: TCP Provider, error: 0 - 指定的网络名不再可用。)
   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   在 System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   在 System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
   在 System.Data.SqlClient.TdsParserStateObject.ReadByte()
   在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.(Boolean enlistOK)
   在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
   在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
   在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.SqlClient.SqlConnection.Open()
   在 mygl.adduser.Button1_Click(Object sender, EventArgs e) 位置 d:\我的文档\visual studio 2010\Projects\mygl\mygl\adduser.vb:行号 59
   在 System.Windows.Forms.Control.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   在 System.Windows.Forms.Button.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 已加载的程序集 **************
mscorlib
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1022 (RTMGDR.030319-1000)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
mygl
    程序集版本: 1.0.0.0
    Win32 版本: 1.0.0.0
    基本代码: file:///D:/我的文档/Visual%20Studio%202010/Projects/mygl/mygl/bin/Debug/mygl.exe
----------------------------------------
Microsoft.VisualBasic
    程序集版本: 10.0.0.0
    Win32 版本: 10.0.30319.1 built by: RTMRel
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1001 built by: RTMGDR
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Core
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 built by: RTMRel
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Windows.Forms
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1002 built by: RTMGDR
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Drawing
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1001 built by: RTMGDR
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Configuration
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1015 (RTMGDR.030319-1000)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Xml
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1015 built by: RTMGDR
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Runtime.Remoting
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 (RTMRel.030319-0100)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Data
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 (RTMRel.030319-0100)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Transactions
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 (RTMRel.030319-0100)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.EnterpriseServices
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 (RTMRel.030319-0100)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Data.resources
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 (RTMRel.030319-0100)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
mscorlib.resources
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 (RTMRel.030319-0100)
    基本代码: file:///C:/WINDOWS/
----------------------------------------
System.Windows.Forms.resources
    程序集版本: 4.0.0.0
    Win32 版本: 4.0.30319.1 built by: RTMRel
    基本代码: file:///C:/WINDOWS/
----------------------------------------

************** JIT 调试 **************
要启用实时(JIT)调试,
该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
jitDebugging 值。
编译应用程序时还必须启用
调试。

例如:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

启用 JIT 调试后,任何未经处理的异常
都将被发送到在此计算机上注册的 JIT 调试器,
而不是由此对话框处理。

#3
不说也罢2016-09-23 14:50
这个问题非常复杂,楼主需要百度。

楼主在编写代码时需注意,sqlconnection对象在open之后,无论是否正确执行了代码,都要及时地close,而且尽量避免每次执行查询任务时,都new一个实例化操作对象且不及时销毁,这会导致超出服务器允许的线程,尤其是你的客户端被普遍分发后会发生。。
#4
梦幻倩影2016-09-23 15:58
只有自己的两台电脑,一台装SQL2008,一台装VS2010  每次都能正确运行4次,第五次就出错
#5
梦幻倩影2016-09-23 15:59
你说代码有问题吧,前四次正常运行,为何连续运行到第五次就出错,退出执行exe 文件后,重运行又可以正常运行4次
#6
梦幻倩影2016-09-23 16:02
百度中说可以这样:

问题解决了,专门来评论一下,希望能够帮助出这样问题的朋友,弄了好几天各种方法都试了,打算在解决不了重装系统了,信好看到这篇文章,这个可能真跟迅雷那厮有关系,我前几天把迅雷更新一下,然后是上IIS服务器,这两天一用就出现这样的问题了。我先把迅雷卸载了,然后以管理员的身份重置了一下winsock就OK了,命令:netsh winsock reset,最后从新启动一下就好了,感谢各位大牛们!!!!

但我执行了,还是无效
#7
不说也罢2016-09-23 16:08
无法重现你这样的问题。你唯一能做的,就是一步一步地排除。
能想到的:连接字符串中,别写计算机名(如Ms20190291\\),而是直接改用服务器的IP地址; 在程序不能访问时,调出CMD,尝试PING下服务器的1433端口; 是否传入服务器的存储过程某列的字符长度过大,引起服务器端异常等等;更改默认的1433端口为其它等等。
总之,你还是需要百度,再检查代码段是否及时断开与服务器的连接(即使数据查询更新出错)。
#8
不说也罢2016-09-23 16:16
sqlconnetion.Open之后,要Close(尤其在Try代码块中容易被忽视),会增加服务器负担,甚至导致线程阻塞
类似的还有,SqlDataReader.Read之后,也要Close.
#9
不说也罢2016-09-23 16:22
如果服务器的IP是DHCP方式自动获得,那么它的IP地址随时会变的哦,需要为服务器指定一个静态IP地址,或者通过域名解析到服务器哦。
#10
不说也罢2016-09-23 16:29
程序出错的时候,一定记住及时ping服务器,然后CMD——>telnet ip 1433查看一下结果
#11
梦幻倩影2016-09-23 16:46
谢谢版主
1