我一直在谷歌寻找一个严肃的解决方案,我只得到"Regisrty解决方案"的东西,我不认为甚至与我的问题有关.
由于某种原因,我得到这个错误,而我只启动一次TcpListner,当+如果失败我停止服务器.我真的不明白.这是我的代码:
class Program { private static string ServerName = ""; private static string UserName = ""; private static string Password = ""; private static string dbConnectionSring = ""; private static X509Certificate adminCertificate; private static byte[] readBuffer = new byte[4096]; static void Main(string[] args) { Console.WriteLine("Please grant SQL Server access to the Admin Server:\n"); Console.Write("Server Name: "); ServerName = Console.ReadLine(); Console.Write("\nUser Name: "); UserName = Console.ReadLine(); Console.Write("\nPassword: "); Password = PasswordMasker.Mask(Password); dbConnectionSring = SQLServerAccess.CreateConnection(ServerName, UserName, Password); adminCertificate = Certificate.GenerateOrImportCertificate("AdminCert.pfx", "randomPassword"); try { Console.WriteLine("Initializing server on the WildCard address on port 443..."); TcpListener listener = new TcpListener(IPAddress.Any, 443); try { Console.WriteLine("Starting to listen at {0}: 443...", IPAddress.Any); //the backlog is set to the maximum integer value, but the underlying network stack will reset this value to its internal maximum value listener.Start(int.MaxValue); Console.WriteLine("Listening... Waiting for a client to connect..."); int ConnectionCount = 0; while (true) { try { listener.BeginAcceptTcpClient(new AsyncCallback(AcceptCallback), listener); ConnectionCount++; Console.WriteLine( " Accepted connection #" + ConnectionCount.ToString()); } catch (SocketException err) { Console.WriteLine("Accept failed: {0}", err.Message); } } } catch (Exception ex) { Console.WriteLine("Listening failed to start."); listener.Stop(); Console.WriteLine(ex.Message); } } catch (Exception ex) { Console.WriteLine("Initialiazing server Failed."); Console.WriteLine(ex.Message); } }
我将非常感谢你的帮助!
我打开CMD并输入:netstat -a
我看了一下Local Address列.
我看了一下端口部分.
我看到程序中的端口已在另一个程序中处于活动状态(正在使用中).
我将程序中的端口更改为其他内容.
有效!
非常感谢:@DavidSchwartz,@ Gusman
打开cmd
输入netstat –ano
将打开带有其端口的进程列表
搜索您无法使用的端口的“进程ID”(在我的情况下为端口11020)
打开任务管理器并停止该过程
现在您的端口可以使用了:)