ไม่สามารถทำการเชื่อมต่อได้เนื่องจากเครื่องเป้าหมายปฏิเสธอย่างแข็งขันหรือไม่


260

บางครั้งฉันได้รับข้อผิดพลาดต่อไปนี้ในขณะที่ฉันกำลังทำ HttpWebRequest กับบริการเว็บ ฉันคัดลอกรหัสของฉันด้านล่างด้วย


System.Net.WebException: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล ---> System.Net.Sockets.SocketException: ไม่สามารถทำการเชื่อมต่อได้เนื่องจากเครื่องเป้าหมายปฏิเสธ 127.0.0.1:80
   ที่ System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress)
   ที่ System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP)
   ที่ System.Net.ServicePoint.ConnectSocketInternal (บูลีน connectFailure, ซ็อกเก็ต s4, ซ็อกเก็ต s6, ซ็อกเก็ตและซ็อกเก็ต, ที่อยู่ IP & ที่อยู่, สถานะ ConnectSocketState, IAsyncResult asyncResult, หมดเวลา Int32, ข้อยกเว้น & ข้อยกเว้น)
   --- สิ้นสุดการติดตามสแต็กข้อยกเว้นภายใน ---
   ที่ System.Net.HttpWebRequest.GetRequestStream ()

ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

request.PreAuthenticate = true;
request.Credentials = networkCredential(sla);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
request.Timeout = v_Timeout * 1000;

if (url.IndexOf("asmx") > 0 && parStartIndex > 0)
{
    AppHelper.Logger.Append("#############" + sla.ServiceName);

    using (StreamWriter reqWriter = new StreamWriter(request.GetRequestStream()))
    {                        
        while (true)
        {
            int index01 = parList.Length;
            int index02 = parList.IndexOf("=");

            if (parList.IndexOf("&") > 0)
                index01 = parList.IndexOf("&");

            string parName = parList.Substring(0, index02);
            string parValue = parList.Substring(index02 + 1, index01 - index02 - 1);

            reqWriter.Write("{0}={1}", HttpUtility.UrlEncode(parName), HttpUtility.UrlEncode(parValue));

             if (index01 == parList.Length)
                 break;

             reqWriter.Write("&");
             parList = parList.Substring(index01 + 1);
         }
     }
 }
 else
 {
     request.ContentLength = 0;
 }

 response = (HttpWebResponse)request.GetResponse();

1
ฉันเพิ่งใช้การเชื่อมต่อกับ Azure นี้ มันค่อนข้างปลอดภัยที่จะบอกว่าเครื่องเป้าหมายใช้ได้ ปัญหายังคงอยู่หลังจากรีบูตและรีเซ็ตเราเตอร์ แปลก. ปัญหา? พู้ทำเล่นไม่ได้ปิดอย่างถูกต้อง ระบบยังคงคาดหวังว่าจะกำหนดเส้นทางการรับส่งข้อมูลผ่าน Fiddler และนั่นคือ 'เครื่องเป้าหมาย' ซึ่งไม่สามารถใช้งานได้
Vok

สิ่งนี้อาจเกี่ยวข้องกับซ็อกเก็ตที่ใช้หรือไม่? คุณปิดพวกเขาที่ทางออกหรือไม่
George Sp

คำตอบ:


204

หากสิ่งนี้เกิดขึ้นเสมอหมายความว่าเครื่องมีอยู่จริง แต่ไม่มีบริการที่รับฟังบนพอร์ตที่ระบุหรือมีไฟร์วอลล์หยุดคุณ

หากเกิดขึ้นเป็นครั้งคราว - คุณใช้คำว่า "บางครั้ง" - และลองอีกครั้งสำเร็จอาจเป็นเพราะเซิร์ฟเวอร์มี 'ค้าง' เต็ม

เมื่อคุณกำลังรอที่จะacceptแก้ไขซ็อกเก็ตการฟังคุณจะอยู่ใน backlog งานในมือนี้มีขอบเขตและค่อนข้างสั้น - ค่า 1, 2 หรือ 3 ไม่ใช่เรื่องแปลก - ดังนั้นระบบปฏิบัติการอาจไม่สามารถจัดคิวคำขอของคุณเพื่อให้ 'ยอมรับ' เพื่อใช้งานได้

ค้างเป็นพารามิเตอร์ในการlistenฟังก์ชั่น - ทุกภาษาและแพลตฟอร์มมีพื้น API เดียวกันในเรื่องนี้แม้C # หนึ่ง พารามิเตอร์นี้มักจะสามารถกำหนดค่าได้หากคุณควบคุมเซิร์ฟเวอร์และอาจอ่านได้จากไฟล์การตั้งค่าหรือรีจิสตรี ตรวจสอบวิธีกำหนดค่าเซิร์ฟเวอร์ของคุณ

หากคุณเขียนเซิร์ฟเวอร์คุณอาจมีการประมวลผลจำนวนมากในการยอมรับซ็อกเก็ตของคุณและสิ่งนี้สามารถย้ายไปยังเธรดผู้ทำงานแยกต่างหากได้ดีขึ้นเพื่อให้การยอมรับของคุณพร้อมที่จะรับการเชื่อมต่อเสมอ มีตัวเลือกสถาปัตยกรรมมากมายที่คุณสามารถสำรวจได้ซึ่งจะช่วยลดการเข้าคิวลูกค้าและประมวลผลตามลำดับ

ไม่ว่าคุณจะสามารถเพิ่มเซิร์ฟเวอร์ที่ค้างได้หรือไม่คุณจำเป็นต้องลองตรรกะในรหัสลูกค้าของคุณเพื่อรับมือกับปัญหานี้ - แม้ว่าจะมีงานในมือที่ค้างนานเซิร์ฟเวอร์ก็อาจได้รับคำขออื่น ๆ จำนวนมากในพอร์ตนั้นในเวลานั้น

มีความเป็นไปได้ยากที่เราเตอร์ NAT จะให้ข้อผิดพลาดนี้หากพอร์ตของการแมปหมดลง ฉันคิดว่าเราสามารถละทิ้งความเป็นไปได้นี้ไปได้นานเกินไปเนื่องจากเราเตอร์มีการเชื่อมต่อ 64K พร้อมกันไปยังที่อยู่ / พอร์ตปลายทางเดียวกันก่อนที่จะหมดแรง


ใช่ฉันได้รับเป็นครั้งคราวไม่เสมอไปฉันไม่คิดว่าเหตุผลคือไฟร์วอลล์หรืออย่างอื่น แต่งานในมืออาจเป็นสาเหตุของปัญหานี้ อย่างไรก็ตามมีการแก้ไขปัญหานี้หรือไม่
hsnkvk

@hsnkvk; วิธีที่มีประสิทธิภาพที่เหมาะสมคือการให้ลูกค้าลองวนซ้ำ ตอบปรับปรุงตาม
Will

@จะ; ฉันมี iterationCount อยู่แล้วและฉันลองทำซ้ำนับครั้งถ้ามันล้มเหลว :(
hsnkvk

1
นั่นคือสิ่งที่ ออกแบบ / กำหนดค่าไม่ดีค่อนข้างคลุมเครือตามที่คุณพูด โดยการตรวจสอบรหัสคุณหมายถึงคุณต้องการดูรหัสที่เรียกใช้บริการเว็บหรือไม่ ฉันไม่ได้โพสต์มันเป็นรหัสเดียวกับที่เรียกว่า webservice แรกและมันใช้งานได้ดี มีคุณสมบัติใด ๆ บนเซิร์ฟเวอร์ที่สามารถกำหนดค่าผ่าน web.config ซึ่งอาจมีผลต่อ webapp ที่สองหรือไม่
Amith George

9
127.0.0.1:80 แสดงให้เห็นว่าบริการเว็บอยู่ในเครื่องท้องถิ่นซึ่งทำให้เกิดปัญหาเครือข่ายไม่เป็นที่น่าพอใจ สิ่งที่เป็นไปได้คือบริการบนเว็บเริ่มช้ากว่าแอปพลิเคชันไคลเอนต์ขณะทดสอบ การเพิ่มตรรกะการลองส่งซ้ำเป็นวิธีที่ไม่ จำกัด
Martin Brown

31

สาเหตุที่เป็นไปได้มากที่สุดคือไฟร์วอลล์

บทความนี้มีเหตุผลหลายประการซึ่งอาจเป็นประโยชน์กับคุณ

จากบทความเหตุผลที่เป็นไปได้คือ:

  • การตั้งค่าเซิร์ฟเวอร์ FTP
  • การตั้งค่าซอฟต์แวร์ / ไฟร์วอลล์ส่วนบุคคล
  • ซอฟต์แวร์ / ไฟร์วอลล์ส่วนบุคคลจำนวนมาก
  • โปรแกรมแอนตี้ไวรัส
  • เลเยอร์ LSP
  • เราเตอร์เฟิร์มแวร์
  • คอมพิวเตอร์ปิด
  • คอมพิวเตอร์ไม่ได้เสียบปลั๊ก
  • พู้ทำเล่น

9
ฉันรู้ว่ามันเก่า แต่คุณสามารถเพิ่ม Fiddler ลงในรายการนี้ การถอดพู้ทำเล่นระหว่างการเริ่มต้นแอพจากนั้นทำการติดตั้งใหม่ทำให้ซ็อกเก็ตของฉันทำงานได้อย่างถูกต้อง
ps2goat

1
ยกนิ้วให้ Fiddler
Kalin Krastev

3
ฉันติดตั้งซอฟต์เลอร์บนเครื่องพัฒนาแล้วและนี่ทำให้เกิดปัญหานี้ฉันไม่ได้เปิดใช้ซอฟดเลอร์เมื่อเปิดใช้งานโครงการนี้โดยเฉพาะและได้รับข้อผิดพลาด เมื่อฉันเปิดพู้ทำเล่นในขณะที่ทำโครงการมันใช้งานได้
Peter PitLock

16

สิ่งนี้เกิดขึ้นกับฉันเช่นกันบางครั้งเมื่อฉันเปิดโครงการข้อผิดพลาดนี้ปรากฏขึ้นซึ่งน่าผิดหวัง ปัญหาคือบางครั้งหมายเลขบริการเว็บมีการเปลี่ยนแปลงโดยไม่คาดคิด

ปัญหานี้มักเกิดขึ้นเมื่อคุณมีมากกว่าหนึ่งสำเนาของโครงการ

โครงการของฉันเรียกบริการเว็บด้วยหมายเลขพอร์ตเฉพาะซึ่งฉันกำหนดไว้ในไฟล์ Web.Config ของไฟล์โครงการหลักของฉัน เนื่องจากหมายเลขพอร์ตเปลี่ยนแปลงโดยไม่คาดคิดเบราว์เซอร์ไม่สามารถค้นหาบริการเว็บและส่งข้อผิดพลาดนั้น

ฉันแก้ไขได้โดยทำตามขั้นตอนด้านล่าง: (Visual Studio 2010)

ไปที่คุณสมบัติของWeb serviceโครงการ -> คลิกที่แท็บเว็บ -> ในส่วนเซิร์ฟเวอร์ -> ตรวจสอบพอร์ตเฉพาะ แล้วกำหนดstandard port numberว่าโครงการหลักของคุณกำลังเรียกใช้บริการเว็บใด

ฉันหวังว่านี่จะช่วยแก้ปัญหาได้

ไชโย :)


2
นี่ไม่ใช่ความรู้ทั่วไปสำหรับฉัน ฉันสับสนว่า heck เกี่ยวกับสาเหตุข้อผิดพลาดของฉันที่ระบุไว้LocalHost:2532สำหรับฉัน กลับกลายเป็นว่าถูกกำหนดโดยเจ้าของคนก่อนในพื้นที่ที่คุณระบุ เมื่อความลึกลับนั้นชัดเจนมันทำให้สิ่งอื่น ๆ ลึกลับน้อยลง ขอบคุณ!
Suamere

7

ฉันคิดว่าคุณต้องตรวจสอบการตั้งค่าพร็อกซีของคุณใน "ตัวเลือกอินเทอร์เน็ต" หากคุณกำลังใช้แอพพลิเคชั่น proxy / 'hide ip' ปัญหานี้อาจเกิดขึ้นได้


นี่เป็นปัญหาทั่วไปของ Windows 7 หรือไม่ ค่าเริ่มต้นบางอย่างแตกต่างเมื่อเทียบกับรุ่นอื่น ๆ ของ Windows หรือไม่
Wolf

@ หมาป่าฉันคิดว่านี่ไม่ใช่ปัญหาของ windows แต่อาจเป็นปัญหาการเชื่อมต่อ
isaeid

ไปที่ IE -> ตัวเลือกอินเทอร์เน็ต -> แท็บการเชื่อมต่อ -> การตั้งค่า LAN ยกเลิกการเลือก "ใช้พร็อกซีเซิร์ฟเวอร์สำหรับ LAN ของคุณ" นี่เป็นการแก้ไขปัญหาสำหรับฉัน
Mike Kuenzi

ในแอปพลิเคชันของฉันฉันรวมตัวเลือกพร็อกซี (WPAD) เนื่องจากผู้ใช้อาจต้องการ ฉันไม่. อย่างไรก็ตามฉันเปิดใช้งานบนคอมพิวเตอร์ทดสอบและนั่นจะทำให้เกิดความล้มเหลว ดังนั้นหากคุณไม่จำเป็นต้องใช้พรอกซีคุณอาจไม่ได้กำหนดไว้ในใบสมัครของคุณ
tmighty

4

ผมมีปัญหาเหมือนกัน. ปัญหาคือฉันไม่ได้สตาร์ทเซิร์ฟเวอร์ซีลีเนียม ฉันได้ดาวน์โหลดเซิร์ฟเวอร์ซีลีเนียมแล้วและฉันเริ่มต้นเอง หลังจากเริ่มต้นเซิร์ฟเวอร์ซีลีเนียมปัญหาก็หายไปและทำงานได้ดี

อ้างอิงสิ่งนี้: http://coding-issues.blogspot.in/2012/11/no-connection-could-be-made-because.html


1
คำถามไม่ได้พูดถึงอะไรเกี่ยวกับเซิร์ฟเวอร์ซีลีเนียม
Geoff Dawdy

1
@GeoffDawdy มันเป็นเพียงตัวอย่างสำหรับเหตุผลที่ # 1 อีกคำตอบของวิล - สนับสนุนการเรียนรู้ผ่านการทำซ้ำ ;-)
หมาป่า

4

ไปที่โครงการ WCF ของคุณ - คุณสมบัติ -> เว็บ-> debuggers -> ยกเลิกการทำเครื่องหมายในช่อง

เปิดใช้งานการแก้ไขและดำเนินการต่อ


10
สิ่งนี้ทำอะไร
Wouter Vanherck

3

ฉันมีข้อผิดพลาดเดียวกันกับบริการ WCF ของฉันโดยใช้ Net TCP binding แต่ได้รับการแก้ไขหลังจากเริ่มบริการด้านล่างในกรณีของฉัน

Net.Pipe.Listener.Adapter

Net.TCP.Listener.Adapter

บริการแชร์พอร์ต Net.Tcp


1
ยอดเยี่ยมฉันดึงผมออกมา เชิงอรรถ: การเรียกใช้บริการ WCF NET.TCP ของฉันบนพีซีที่ใช้ Windows 7 ไม่ต้องการให้บริการทั้ง 3 นี้ทำงาน แต่ทำงานบน Windows Server (ผมทดสอบ 2003 และ 2008) บริการเหล่านี้มีการใช้งานสำหรับ WCF เพื่อให้สามารถที่ถูกต้อง
smirkingman

3

นี่เป็นเรื่องเฉพาะจริงๆ แต่ถ้าคุณได้รับข้อผิดพลาดหลังจากพยายามเชื่อมต่อกับฐานข้อมูลโดยใช้ Mongo สิ่งที่ได้ผลสำหรับฉันคือการใช้ mongod.exe ก่อนที่จะเรียกใช้ mongo.exe จากนั้นการเชื่อมต่อก็ใช้งานได้ หวังว่านี่จะช่วยใครซักคน


3

ฉันต้องเผชิญกับข้อผิดพลาดเดียวกันเพราะเมื่อเซิร์ฟเวอร์และไคลเอนต์ของคุณทำงานบนเครื่องเดียวกันไคลเอนต์ต้องเซิร์ฟเวอร์ท้องถิ่นที่อยู่ IP ไม่ได้ที่อยู่ IP สาธารณะในการสื่อสารกับเซิร์ฟเวอร์ที่คุณต้องการที่อยู่ IP สาธารณะเฉพาะในกรณีที่เซิร์ฟเวอร์และลูกค้าทำงานบนเครื่องแยกต่างหาก ในโปรแกรมไคลเอนต์เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่อยู่ IP ท้องถิ่นสามารถพบได้โดยใช้วิธีนี้

 public static string Getlocalip()
    {
        try
        {
            IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
            return localIPs[7].ToString();
        }
        catch (Exception)
        {

            return "null";
        }

    }

นั่นคือสถานการณ์ของฉัน: เป็นการแก้ไขทางเลือกหากคุณกำลังชี้ไปที่ชื่อโฮสต์ที่แปลงเป็น IP สาธารณะคุณอาจต้องการแก้ไขไฟล์ HOST ของเครื่องเซิร์ฟเวอร์และเพิ่มกฎที่กำหนดเส้นทางชื่อโฮสต์ของคุณไปที่ 127.0.0.1
Darkseal

3

ฉันพบข้อผิดพลาดนี้ในแอปพลิเคชันที่ใช้ AppFabric เบาะแสกำลังได้รับDataCacheExceptionในการติดตามสแต็ก หากต้องการดูว่านี่เป็นปัญหาสำหรับคุณหรือไม่ให้เรียกใช้คำสั่ง PowerShell ต่อไปนี้:

@("AppFabricCachingService","RemoteRegistry") | % { get-service $_ }

หากบริการใดในสองบริการนี้หยุดทำงานคุณจะได้รับข้อผิดพลาดนี้


ขอบคุณ สำหรับการอ้างอิงในอนาคตถึงตัวฉันและคนอื่น ๆ มันดูเหมือนว่าจะทำงานได้เมื่อฉันเริ่มให้บริการ แต่แอพมีความช้าและในที่สุดฉันก็ทวิก (d'uh) ว่าบริการบนเซิร์ฟเวอร์อื่นใน AppFabric ไม่ได้เปิดคลัสเตอร์
Mark

2

ดีฉันได้รับข้อผิดพลาดในวันนี้บน Windows 8 64- บิตจากสีน้ำเงินเป็นครั้งแรกและปรากฎว่า my.ini ของฉันถูกรีเซ็ตและไฟล์ bin / mysqld ถูกลบไปแล้วในรายการอื่น ๆ ใน"Program Files/MySQL/MySQL Server 5.6"โฟลเดอร์

ในการแก้ไขฉันต้องเรียกใช้ตัวติดตั้ง MySQL อีกครั้งติดตั้งเฉพาะเซิร์ฟเวอร์และคัดลอกไฟล์ my.ini เวอร์ชันล่าสุดจาก"ProgramData/MySQL/MySQL Server 5.6"ชื่อmy_2014-03-28T15-51-20.iniในกรณีของฉัน (ไม่ทราบว่าทำไมหรือทำไมจึงคัดลอกมาที่นั่นไม่นาน) กลับเข้า"Program Files/MySQL/MySQL Server 5.6"มา

การเปลี่ยนแปลงเพียงอย่างเดียวของระบบตั้งแต่ทำงานบน MySQL คือการติดตั้ง Native Instruments 'Traktor 2 และการ์ดเสียง Traktor Audio 2 ซึ่งไม่ควรทำให้เกิดปัญหานี้จริง ๆ และไม่มีใครใช้ระบบอื่นนอกเหนือจากฉัน หากใครมีเงื่อนงำมันจะเป็นการดีที่คุณจะแสดงความคิดเห็นเพื่อป้องกันไม่ให้ฉันและคนอื่น ๆ ที่ได้พบนี้


ฉันมีปัญหาเดียวกันและ onw แฮ็คเพื่อแก้ปัญหาคือการหยุดบริการ MyQsl ผ่าน services.msc อย่างไรก็ตาม MySql ของคุณไม่สามารถใช้งานได้หลังจากนั้นคุณต้องรีสตาร์ทคอมพิวเตอร์เพื่อให้สามารถใช้งานได้อีกครั้ง
Gabriel

2

สำหรับการอ้างอิงบริการภายในโซลูชัน

  1. รีสตาร์ทเวิร์กสเตชันของคุณ

  2. สร้างโซลูชันของคุณใหม่

  3. อัปเดตบริการอ้างอิงในโครงการ WCFclient

ณ จุดนี้ฉันได้รับ messsage (Windows 7) เพื่ออนุญาตการเข้าถึงระบบ จากนั้นบริการอ้างอิงได้รับการปรับปรุงอย่างเหมาะสมโดยไม่มีข้อผิดพลาด


2

ฉันต้องการแบ่งปันคำตอบนี้ฉันพบเพราะสาเหตุของปัญหาไม่ใช่ไฟร์วอลล์หรือกระบวนการไม่ฟังอย่างถูกต้องเป็นตัวอย่างรหัสที่มาจาก Microsoft ที่ฉันใช้

https://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx

ฉันใช้งานฟังก์ชั่นนี้เกือบจะเหมือนที่เขียน แต่สิ่งที่เกิดขึ้นคือฉันได้รับข้อผิดพลาดนี้:

2016-01-05 12: 00: 48,075 [10] ข้อผิดพลาด - ข้อผิดพลาดคือ: System.Net.Sockets.SocketException (0x80004005): ไม่สามารถทำการเชื่อมต่อได้เนื่องจากเครื่องเป้าหมายปฏิเสธไม่ได้ [fe80 :: caa: 745: a1da:% e6f1 11]: 4080

รหัสนี้จะบอกว่าซ็อกเก็ตเชื่อมต่อ แต่ไม่อยู่ภายใต้ที่อยู่ IP ที่ถูกต้องจริงสำหรับการสื่อสารที่เหมาะสม (จัดทำโดย Microsoft)

private static Socket ConnectSocket(string server, int port)
    {
        Socket s = null;
        IPHostEntry hostEntry = null;

        // Get host related information.
        hostEntry = Dns.GetHostEntry(server);

        // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
        // an exception that occurs when the host IP Address is not compatible with the address family
        // (typical in the IPv6 case).
        foreach(IPAddress address in hostEntry.AddressList)
        {
            IPEndPoint ipe = new IPEndPoint(address, port);
            Socket tempSocket = 
                new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            tempSocket.Connect(ipe);

            if(tempSocket.Connected)
            {
                s = tempSocket;
                break;
            }
            else
            {
                continue;
            }
        }
        return s;
    }

ฉันเขียนรหัสใหม่เพื่อใช้ IP ที่ถูกต้องตัวแรกที่พบ ฉันกังวลเฉพาะกับ IPV4 ที่ใช้สิ่งนี้ แต่ทำงานได้กับ localhost, 127.0.0.1 และที่อยู่ IP จริงของการ์ดเครือข่ายของคุณซึ่งตัวอย่างจาก Microsoft ล้มเหลว!

    private Socket ConnectSocket(string server, int port)
    {
        Socket s = null;

        try
        {
            // Get host related information.
            IPAddress[] ips;
            ips = Dns.GetHostAddresses(server);

            Socket tempSocket = null;
            IPEndPoint ipe = null;

            ipe = new IPEndPoint((IPAddress)ips.GetValue(0), port);
            tempSocket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            Platform.Log(LogLevel.Info, "Attempting socket connection to " + ips.GetValue(0).ToString() + " on port " + port.ToString());
            tempSocket.Connect(ipe);

            if (tempSocket.Connected)
            {
                s = tempSocket;
                s.SendTimeout = Coordinate.HL7SendTimeout;
                s.ReceiveTimeout = Coordinate.HL7ReceiveTimeout;
            }
            else
            {
                return null;
            }

            return s;
        }
        catch (Exception e)
        {
            Platform.Log(LogLevel.Error, "Error creating socket connection to " + server + " on port " + port.ToString());
            Platform.Log(LogLevel.Error, "The error is: " + e.ToString());
            if (g_NoOutputForThreading == false)
                rtbResponse.AppendText("Error creating socket connection to " + server + " on port " + port.ToString());
            return null;
        }
    }

2

ในกรณีของฉันบางโดเมนทำงานในขณะที่บางอย่างไม่ได้ การเพิ่มการอ้างอิงไปยัง Url พร็อกซีขององค์กรของฉันใน web.config ของฉันแก้ไขปัญหาได้

<system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy proxyaddress="http://proxy.my-org.com/" usesystemdefault="True"/>
    </defaultProxy>
</system.net>

1

ฉันได้รับข้อผิดพลาดนี้จากบริการอ้างอิงที่อยู่ใน WCFHost จากระดับเว็บของฉัน สิ่งที่ได้ผลสำหรับฉันอาจไม่เหมาะกับทุกคน แต่ฉันจะทิ้งคำตอบนี้ไว้สำหรับผู้ที่อาจได้รับ หมายเลขพอร์ตสำหรับ WCFHost ของฉันได้รับการอัปเดตแบบสุ่มโดย IIS ฉันแค่ต้องอัปเดตเส้นทางสุดท้ายไปยังการอ้างอิง svc ในเว็บการตั้งค่าของฉัน แก้ไขปัญหา.


1

ในสถานการณ์ของฉันฉันมีสองแอปพลิเคชัน:

  • App1
  • App2

ข้อสันนิษฐาน : App1 ควรฟังกิจกรรมของ App2 ในพอร์ต 5000

ข้อผิดพลาด : การเริ่มต้น App1 และพยายามฟังไปยังเมืองผีที่ไม่มีอยู่ทำให้เกิดข้อผิดพลาด

วิธีแก้ปัญหา : เริ่ม App2 ก่อนจากนั้นลองฟังโดยใช้ App1


1

ความเป็นไปได้อีกอย่างหนึ่ง -

ตรวจสอบให้แน่ใจว่าคุณพยายามเปิดที่อยู่ IP เดียวกับที่คุณกำลังฟังอยู่ แอปเซิร์ฟเวอร์ของฉันกำลังฟังที่อยู่ IP ของเครื่องโฮสต์โดยใช้ IPv6 แต่ลูกค้าพยายามเชื่อมต่อที่อยู่ IPv4 ของเครื่องโฮสต์


1

ในกรณีของฉันนี้เกิดจากการใช้งานผิดพลาดที่ไม่ได้ทำการตั้งค่าใน web.config ของฉัน

เพื่อนร่วมงานอธิบายว่าที่อยู่ IP ในข้อความแสดงข้อผิดพลาดแสดงถึง localhost

เมื่อฉันแก้ไข web.config ฉันใช้ url ที่ถูกต้องในการโทรเซิร์ฟเวอร์และใช้งานได้

ฉันคิดว่าฉันจะโพสต์สิ่งนี้ในกรณีที่มันอาจช่วยใครบางคน


0

การใช้ WampServer 64 บิตบน Windows 7 Home Premium 64 บิตฉันพบปัญหาตรงนี้ หลังจากชั่วโมงและชั่วโมงของการทดลองมันก็เห็นได้ชัดว่าทั้งหมดที่จำเป็นคือใน my.ini เพื่อแสดงความคิดเห็นออกหนึ่งบรรทัด จากนั้นก็ใช้งานได้ดี

แสดงความคิดเห็นออก 1 ซ็อกเก็ตสาย = mysql

หากคุณวางไฟล์เก่า / data / ไว้ในตำแหน่งที่เหมาะสม WampServer จะยอมรับไฟล์เหล่านั้นทั้งหมดยกเว้นโฟลเดอร์ / mysql / ที่มันเขียนทับ ดังนั้นฉันจึงนำเข้าข้อมูลสำรองของ / mysql / ข้อมูลผู้ใช้จากสภาพแวดล้อมการพัฒนาก่อนหน้านี้ของฉันและรันสิทธิประโยชน์การล้างข้อมูลในหน้าต่าง phpMyAdmin SQL ใช้งานได้ดี บางสิ่งต้องผิดเพราะสิ่งต่าง ๆ ไม่ควรง่ายขนาดนี้


0

ฉันมีปัญหานี้เกิดขึ้นบ่อยครั้ง ฉันพบว่าSQL Server Agentบริการไม่ทำงาน เมื่อฉันเริ่มบริการด้วยตนเองมันก็จะได้รับการแก้ไข ตรวจสอบอีกครั้งว่าบริการกำลังทำงานอยู่หรือไม่:

  1. เรียกใช้พรอมต์พิมพ์services.mscแล้วกด Enter
  2. ค้นหาชื่อบริการ - SQL Server Agent( ชื่ออินสแตนซ์ )

หากSQL Server Agentไม่ได้ทำงานอยู่ให้คลิกสองครั้งที่หน้าต่างบริการเพื่อเปิดคุณสมบัติ จากนั้นคลิกที่Startปุ่ม หวังว่ามันจะช่วยใครซักคน


ทำไมเอเจนต์ SQL Server ถึงมีส่วนเกี่ยวข้องกับ IIS คุณอาจหมายถึงบริการ WWW?
Nick.McD เงือก

0

ฉันพบข้อผิดพลาดนี้และใช้เวลาพอสมควรในการแก้ไข ในกรณีของฉันฉันมี https และ net.tcp กำหนดค่าเป็น IIS ผูกบนพอร์ตเดียวกัน เห็นได้ชัดว่าคุณไม่สามารถมีสองสิ่งในพอร์ตเดียวกัน ฉันใช้คำสั่ง netstat -ap tcp เพื่อตรวจสอบว่ามีบางอย่างรอฟังพอร์ตอยู่หรือไม่ ไม่มีใครฟัง การลบการเชื่อมโยงที่ไม่จำเป็น (https ในกรณีของฉัน) แก้ไขปัญหาของฉันได้


0

มันเป็นปัญหาโง่ ๆ ที่ด้านข้างของฉันฉันได้เพิ่ม defaultproxy ลงใน web.config ของฉันเพื่อสกัดกั้นการจราจรใน Fiddler แล้วลืมลบออก!


0

มีบริการที่เรียกว่า "เบราว์เซอร์เซิร์ฟเวอร์ SQL" ที่ให้ข้อมูลการเชื่อมต่อเซิร์ฟเวอร์ SQL กับลูกค้า

ในกรณีของฉันไม่มีวิธีแก้ไขปัญหาใดที่ทำงานอยู่เพราะบริการนี้ไม่ทำงาน ฉันกลับมาทำงานต่อและทุกอย่างกลับไปทำงานอย่างสมบูรณ์


0

ฉันกำลังเผชิญกับปัญหานี้ในวันนี้ Mine เป็น Asp.Net Core API และใช้Postgresqlเป็นฐานข้อมูล เราได้กำหนดค่าฐานข้อมูลนี้เป็นคอนเทนเนอร์นักเทียบท่า ดังนั้นขั้นตอนแรกที่ฉันทำคือตรวจสอบว่าฉันสามารถเข้าถึงฐานข้อมูลได้หรือไม่ เมื่อต้องการทำสิ่งที่ฉันค้นหาPgAdminในการเริ่มต้นตามที่ฉันได้กำหนดค่าเดียวกัน คลิกที่แอพลิเคชันส่งผลให้จะนำคุณไปยังhttp://127.0.0.1:23722/browser/ คุณสามารถลองเข้าถึงฐานข้อมูลทางด้านซ้ายของเมนู สำหรับฉันฉันได้รับข้อผิดพลาดดังภาพด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนรหัสผ่านและลองว่าคุณสามารถเข้าถึงได้หรือไม่ สำหรับฉันมันไม่ทำงาน เนื่องจากเป็นคอนเทนเนอร์ Docker ฉันตัดสินใจรีสตาร์ทเดสก์ท็อป Docker ของฉันเพื่อคลิกขวาที่ไอคอน docker ในทาสก์บาร์และคลิกเริ่มใหม่

ครั้งหลังจากรีสตาร์ทหางก็สามารถที่จะเข้าสู่ระบบฐานข้อมูลและดูและยังมีข้อผิดพลาดก็หายไปเมื่อฉันเริ่มใช้ใน Visual สตูดิโอ

หวังว่ามันจะช่วย


0

อาจเป็นเพราะปัญหาการให้สิทธิ์ นั่นเป็นกรณีสำหรับฉัน หากคุณมีตัวอย่างเช่น: [Authorize("WriteAccess")]หรือ[Authorize("ReadAccess")]ที่ด้านบนของฟังก์ชั่นคอนโทรลเลอร์ให้ลองคอมเม้นท์


0

สำหรับฉันฉันต้องการเริ่ม mongo ใน shell (ไม่เกี่ยวข้องกับบริบทที่แน่นอนของคำถาม แต่มีข้อความแสดงข้อผิดพลาดเดียวกันก่อนที่จะเริ่ม mongo ใน shell)

กระบวนการ 'บริการ MongoDB' ไม่ได้ทำงานในบริการ

เริ่ม cmd ในฐานะผู้ดูแลระบบและพิมพ์

net start MongoDB

เพียงเพื่อดู MongoDB ทำงานและทำงานเพียงพิมพ์ mongo ใน cmd มันจะให้รายละเอียดของ Mongo version และ Mongo Connection URL


0

ฉันเพิ่งเจอสิ่งนี้ในตอนนี้ ...

ป้อนคำอธิบายรูปภาพที่นี่

ในตอนท้ายของฉันฉันมีโซลูชัน Visual Studio (.sln) แยก 2 รายการ ... เปิดแต่ละรายการในอินสแตนซ์ Visual Studio ของตนเอง

โซลูชัน 2 เรียกใช้รหัสโซลูชัน 1 ปัญหาเกี่ยวข้องกับพอร์ตที่กำหนดให้กับโซลูชัน 1 ฉันต้องเปลี่ยนพอร์ตในโซลูชัน 1 เป็นอีกโซลูชันหนึ่งจากนั้นโซลูชัน 2 เริ่มทำงานอีกครั้ง ดังนั้นให้แน่ใจว่าคุณตรวจสอบพอร์ตที่กำหนดให้กับโครงการของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.