我一直在谷歌上寻找一个严肃的解决方案,我只能获得" 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);
}
}
我真的很感谢你的帮助!
答案 0 :(得分:10)
我将程序中的端口更改为其他内容。
工作了!
非常感谢:@DavidSchwartz,@ Gusman
答案 1 :(得分:7)
选项 1
netstat -ano | findstr ":80"
- 其中“80”是您要搜索的端口号。taskkill /PID <PID> /F
(其中 <PID>
是需要终止的 PID)。选项 2
如果上述选项 1 不起作用,请尝试重新启动您的机器。
答案 2 :(得分:3)
答案 3 :(得分:1)
为了找到进程,使用 PowerShell 很容易:
$theCulpritPort="8001"
Get-NetTCPConnection -LocalPort $theCulpritPort `
| Select-Object -Property "OwningProcess", @{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| Get-Unique
继续前进,如果您需要终止进程,则最后通过管道执行 Stop-Process:
$theCulpritPort="8001"
Get-NetTCPConnection -LocalPort $theCulpritPort -ErrorAction Ignore `
| Select-Object -Property @{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| Get-Unique `
| Stop-Process -Name {$_.ProcessName} -Force