diff --git a/v2rayN/v2rayN/Base/HttpWebServerB.cs b/v2rayN/v2rayN/Base/HttpWebServerB.cs
index 403ffedb..fcbca1dd 100644
--- a/v2rayN/v2rayN/Base/HttpWebServerB.cs
+++ b/v2rayN/v2rayN/Base/HttpWebServerB.cs
@@ -35,25 +35,32 @@ namespace v2rayN.Base
 
         private void StartListen()
         {
-            listener = new TcpListener(IPAddress.Any, port);
-            listener.Start();
-            Utils.SaveLog("WebserverB running...");
-
-            while (true)
+            try
             {
-                if (!listener.Pending())
-                {
-                    Thread.Sleep(100);
-                    continue;
-                }
+                listener = new TcpListener(IPAddress.Any, port);
+                listener.Start();
+                Utils.SaveLog("WebserverB running...");
 
-                TcpClient socket = listener.AcceptTcpClient();
-                Thread thread = new Thread(new ParameterizedThreadStart(ProcessThread))
+                while (true)
                 {
-                    IsBackground = true
-                };
-                thread.Start(socket);
-                Thread.Sleep(1);
+                    if (!listener.Pending())
+                    {
+                        Thread.Sleep(100);
+                        continue;
+                    }
+
+                    TcpClient socket = listener.AcceptTcpClient();
+                    Thread thread = new Thread(new ParameterizedThreadStart(ProcessThread))
+                    {
+                        IsBackground = true
+                    };
+                    thread.Start(socket);
+                    Thread.Sleep(1);
+                }
+            }
+            catch
+            {
+                Utils.SaveLog("WebserverB start fail.");
             }
         }
         private void ProcessThread(object obj)