Không có kết nối có thể được thực hiện bởi vì máy mục tiêu chủ động từ chối nó?


260

Đôi khi tôi gặp phải lỗi sau khi tôi đang thực hiện HTTPWebRequest với WebService. Tôi đã sao chép mã của tôi dưới đây quá.


System.Net.WebException: Không thể kết nối với máy chủ từ xa ---> System.Net.Sockets.SocketException: Không thể thực hiện kết nối nào vì máy đích đã chủ động từ chối nó 127.0.0.1:80
   tại System.Net.Sockets.Socket.DoConnect (Endpoint endPointSnapshot, SocketAddress socketAddress)
   tại System.Net.Sockets.Socket.IternalConnect (Endpoint remoteEP)
   tại System.Net.ServicePoint.ConnectSocketI Internalal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress & address, ConnectSocketState state, IAsyncResult asyncResult, Int32 time
   --- Kết thúc dấu vết ngăn xếp ngoại lệ bên trong ---
   tại 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
Tôi vừa mới chạy đến kết nối này với Azure. Nó khá an toàn để nói rằng máy mục tiêu có sẵn. Vấn đề vẫn tồn tại sau khi khởi động lại và thiết lập lại bộ định tuyến. Kỳ dị. Vấn đề? Fiddler đã không tắt đúng cách. Hệ thống vẫn đang mong đợi định tuyến lưu lượng truy cập thông qua Fiddler và đó là 'máy mục tiêu' không khả dụng.
Vok

Điều này có thể có một cái gì đó để làm với các ổ cắm được sử dụng? Bạn có đóng chúng ở lối ra không?
George Sp

Câu trả lời:


204

Nếu điều này luôn xảy ra, điều đó có nghĩa là máy tồn tại nhưng nó không có dịch vụ lắng nghe trên cổng được chỉ định hoặc có tường lửa ngăn bạn.

Nếu điều này thỉnh thoảng xảy ra - bạn đã sử dụng từ "đôi khi" - và thử lại thành công, có khả năng là do máy chủ có đầy đủ 'tồn đọng'.

Khi bạn đang chờ để được chỉnh sửa accepttrên một ổ cắm nghe, bạn được đặt trong một hồ sơ tồn đọng. Backlog này là hữu hạn và khá ngắn - các giá trị 1, 2 hoặc 3 không phải là bất thường - và do đó, HĐH có thể không thể xếp hàng yêu cầu của bạn để 'chấp nhận' tiêu thụ.

Backlog là một tham số trên listenhàm - tất cả các ngôn ngữ và nền tảng đều có cùng một API về vấn đề này, thậm chí là C # . Tham số này thường có thể định cấu hình nếu bạn điều khiển máy chủ và có khả năng đọc từ một số tệp cài đặt hoặc sổ đăng ký. Điều tra cách cấu hình máy chủ của bạn.

Nếu bạn đã viết máy chủ, bạn có thể xử lý nặng khi chấp nhận ổ cắm của mình và điều này có thể được chuyển tốt hơn sang một luồng công nhân riêng biệt để chấp nhận của bạn luôn sẵn sàng nhận kết nối. Có nhiều lựa chọn kiến ​​trúc khác nhau mà bạn có thể khám phá để giảm thiểu việc xếp hàng khách hàng và xử lý chúng tuần tự.

Bất kể bạn có thể tăng tồn đọng máy chủ hay không, bạn cần thử lại logic trong mã máy khách của mình để đối phó với vấn đề này - vì ngay cả khi tồn đọng lâu, máy chủ có thể sẽ nhận được rất nhiều yêu cầu khác trên cổng đó vào thời điểm đó.

Có một khả năng hiếm khi một bộ định tuyến NAT sẽ đưa ra lỗi này nếu các cổng của nó cho ánh xạ bị cạn kiệt. Tôi nghĩ rằng chúng ta có thể loại bỏ khả năng này vì quá nhiều cú đánh dài, vì bộ định tuyến có 64K kết nối đồng thời đến cùng một địa chỉ / cổng đích trước khi cạn kiệt.


Có, tôi thỉnh thoảng nhận được nó, không phải lúc nào, tôi không nghĩ lý do là tường lửa hay bất cứ điều gì khác, nhưng tồn đọng có thể là lý do của vấn đề này. Có cách nào để giải quyết vấn đề này?
hsnkvk

@hsnkvk; cách mạnh mẽ thích hợp là để máy khách có một vòng lặp thử lại; câu trả lời được cập nhật tương ứng
Will

@Sẽ; Tôi đã có iterationCount và tôi thử lại lần lặp nếu nó thất bại. :(
hsnkvk

1
Đó là điều. Thiết kế / cấu hình xấu là khá mơ hồ như bạn nói. Bằng cách kiểm tra mã, bạn có nghĩa là bạn muốn xem mã gọi dịch vụ web? Tôi đã không đăng nó dưới dạng mã chính xác giống như mã gọi dịch vụ web đầu tiên và mã đó hoạt động hoàn hảo. Có bất kỳ thuộc tính nào trên máy chủ có thể được cấu hình qua web.config có thể ảnh hưởng đến ứng dụng web thứ hai không?
Amith George

9
127.0.0.1:80 gợi ý rằng dịch vụ web nằm trên máy cục bộ khiến các sự cố mạng không được giải quyết. Điều rất có thể là dịch vụ web đã khởi động chậm hơn ứng dụng khách trong khi thử nghiệm. Vẫn thêm logic thử lại chắc chắn là cách để đi.
Martin Brown

31

Lý do có thể xảy ra nhất là Tường lửa.

Bài viết này chứa một tập hợp các lý do, có thể hữu ích cho bạn.

Từ bài viết, lý do có thể là:

  • Cài đặt máy chủ FTP
  • Cài đặt tường lửa phần mềm / cá nhân
  • Nhiều phần mềm / Tường lửa cá nhân
  • Phần mềm diệt virus
  • Lớp LSP
  • Bộ định tuyến Firmware
  • Máy tính đã tắt
  • Máy tính không được cắm
  • Tay đấm

9
Tôi biết điều này đã cũ, nhưng bạn có thể thêm Fiddler vào danh sách này. tách rời fiddler trong quá trình khởi động ứng dụng, sau đó gắn lại làm cho ổ cắm của tôi hoạt động chính xác.
ps2goat

1
Đồng ý với Fiddler
Kalin Krastev

3
Tôi đã cài đặt fiddler trên máy dev và điều này gây ra vấn đề này, tôi không mở fiddler khi chạy dự án cụ thể này và gặp lỗi. Khi tôi mở fiddler trong khi chạy dự án, nó đã hoạt động
Peter PitLock

16

Điều này cũng xảy ra với tôi .. Đôi khi khi tôi mở dự án của mình, lỗi này xuất hiện rất khó chịu. Vấn đề là đôi khi số cổng dịch vụ web thay đổi bất ngờ.

Vấn đề này thường xảy ra khi bạn có nhiều hơn một bản sao của dự án

Dự án của tôi đã gọi dịch vụ Web với một số cổng cụ thể mà tôi đã gán trong tệp Web.Config của tệp dự án chính của mình. Khi số cổng thay đổi bất ngờ, trình duyệt không thể tìm thấy dịch vụ Web và đưa ra lỗi đó.

Tôi đã giải quyết điều này bằng cách làm theo các bước dưới đây: (Visual Studio 2010)

Chuyển đến Thuộc tính của Web servicedự án -> nhấp vào tab Web -> Trong phần Máy chủ -> Kiểm tra cổng cụ thể và sau đó chỉ định standard port numbertheo đó dự án chính của bạn đang gọi dịch vụ web.

Tôi hy vọng điều này sẽ giải quyết vấn đề.

Chúc mừng :)


2
Đây không phải là kiến ​​thức phổ biến đối với tôi. Tôi đã bối rối như lý do tại sao lỗi của tôi chỉ định LocalHost:2532cho tôi. Hóa ra nó đã được đặt bởi chủ sở hữu trước đó trong khu vực bạn đã chỉ định. Bây giờ bí ẩn đó đã rõ ràng, nó làm cho một số điều khác ít bí ẩn hơn. Cảm ơn!
Suamere 17/03 '

7

Tôi nghĩ rằng, bạn cần kiểm tra cài đặt proxy của mình trong "tùy chọn internet". Nếu bạn đang sử dụng các ứng dụng proxy / 'ẩn ip', vấn đề này có thể xảy ra.


Đây có phải là sự cố điển hình của Windows 7 không? Có một số mặc định khác so với các phiên bản Windows khác?
Sói

@Wolf, tôi nghĩ đây không phải là vấn đề về windows. nhưng, nó có thể là một vấn đề kết nối.
isaeid

Chuyển đến IE -> Tùy chọn Internet -> tab Kết nối -> Cài đặt mạng LAN, bỏ chọn "Sử dụng máy chủ proxy cho mạng LAN của bạn." Điều này đã khắc phục vấn đề cho tôi.
Mike Kuenzi

Trong ứng dụng của mình, tôi đã bao gồm một tùy chọn proxy (WPAD) vì người dùng có thể yêu cầu nó. Tôi không. Tuy nhiên, tôi đã kích hoạt nó trên máy tính thử nghiệm của mình và điều đó sẽ gây ra lỗi. Vì vậy, nếu bạn không phải sử dụng proxy, bạn có thể không xác định một trong ứng dụng của mình.
tmighty

4

Tôi đã từng gặp vấn đề tương tự. Vấn đề là tôi đã không khởi động máy chủ selen. Tôi đã tải xuống máy chủ selen và tôi đã khởi động nó. Sau khi khởi động máy chủ selen, vấn đề đã biến mất và tất cả đều hoạt động tốt.

Tham khảo điều này: http://coding-issues.blogspot.in/2012/11/no-connection-could-be-ADE-because.html


1
Câu hỏi không đề cập gì về máy chủ selen.
Geoff Dawdy

1
@GeoffDawdy Đây chỉ là một ví dụ khác cho lý do số 1 trong câu trả lời của Will - hỗ trợ học tập thông qua sự lặp lại ;-)
Wolf

4

Chuyển đến dự án WCF của bạn - thuộc tính -> Web-> trình gỡ lỗi -> bỏ đánh dấu hộp kiểm

Bật chỉnh sửa và tiếp tục


10
Cái này làm gì
Wouter Vanherck

3

Tôi đã gặp lỗi tương tự với dịch vụ WCF của mình khi sử dụng ràng buộc Net TCP, nhưng đã được giải quyết sau khi bắt đầu các dịch vụ dưới đây trong trường hợp của tôi.

Net.Pipe.Listener.Ad CHƯƠNG

Net.TCP.Listener.Ad CHƯƠNG

Dịch vụ chia sẻ cổng Net.Tcp


1
Rực rỡ, tôi đang kéo tóc ra. Lưu ý: Chạy dịch vụ WCF NET.TCP của tôi trên PC Windows 7 không yêu cầu 3 dịch vụ này chạy. Tuy nhiên, chạy trên Windows Server (tôi đã thử nghiệm 2003 và 2008) các dịch vụ này phải được chạy cho WCF để có thể sửa.
smirkingman

3

Điều này thực sự cụ thể, nhưng nếu bạn nhận được lỗi này sau khi cố gắng kết nối với cơ sở dữ liệu bằng mongo, thì điều làm việc với tôi là chạy mongod.exe trước khi chạy mongo.exe và sau đó kết nối hoạt động tốt. Hy vọng điều này sẽ giúp được ai đó.


3

Tôi gặp phải lỗi tương tự vì khi Máy chủ và Máy khách của bạn chạy trên cùng một máy, Máy khách cần địa chỉ IP cục bộ của máy chủ chứ không phải địa chỉ IP Công cộng để liên lạc với máy chủ, bạn chỉ cần địa chỉ IP Công cộng trong trường hợp Máy chủ và Máy khách chạy trên máy riêng biệt. trong chương trình máy khách để kết nối với máy chủ Địa chỉ IP cục bộ có thể được tìm thấy bằng phương pháp này.

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

            return "null";
        }

    }

Đó là kịch bản của tôi: như là một sửa chữa thay thế, nếu bạn đang trỏ đến tên máy chủ phân giải thành IP công cộng, bạn cũng có thể muốn chỉnh sửa tệp HOST của máy chủ của mình và thêm quy tắc định tuyến tên máy chủ của bạn đến 127.0.0.1.
Darkseal

3

Tôi đã gặp lỗi này trong một ứng dụng sử dụng AppFoven. Manh mối đã nhận được một DataCacheExceptiondấu vết trong ngăn xếp. Để xem đây có phải là vấn đề với bạn không, hãy chạy lệnh PowerShell sau:

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

Nếu một trong hai dịch vụ này bị dừng, thì bạn sẽ gặp lỗi này.


Cảm ơn. Một ghi chú bên cạnh, để tham khảo trong tương lai cho bản thân tôi và những người khác, có vẻ như tôi đã bắt đầu dịch vụ nhưng ứng dụng này có đủ loại chậm chạp và cuối cùng tôi đã xoắn (dịch vụ) trên máy chủ khác trong AppFoven cụm không được bật.
Đánh dấu

2

Chà, lần đầu tiên tôi đã nhận được lỗi này trên Windows 8 64 bit, và hóa ra my.ini của tôi đã được đặt lại và tệp bin / mysqld đã bị xóa, trong số các mục khác trong "Program Files/MySQL/MySQL Server 5.6"thư mục.

Để khắc phục, tôi phải chạy lại trình cài đặt MySQL, chỉ cài đặt máy chủ và sao chép phiên bản gần đây của tệp my.ini từ "ProgramData/MySQL/MySQL Server 5.6", được đặt tên my_2014-03-28T15-51-20.initrong trường hợp của tôi (không biết làm thế nào hoặc tại sao nó được sao chép gần đây) trở lại vào "Program Files/MySQL/MySQL Server 5.6".

Sự thay đổi duy nhất đối với hệ thống kể từ khi MySQL hoạt động là việc cài đặt Traktor 2 và một card âm thanh Traktor Audio 2, mà thực sự không nên gây ra vấn đề này và không ai khác sử dụng hệ thống này ngoài tôi. Nếu bất cứ ai có manh mối, bạn nên bình luận để ngăn chặn điều này cho tôi và bất kỳ ai khác đã gặp phải điều này.


Tôi đã có cùng một vấn đề và onw hack để giải quyết nó là dừng dịch vụ MyQsl thông qua services.msc. Tuy nhiên, MySql của bạn không khả dụng sau đó nên bạn cần khởi động lại máy tính để có lại nó.
Gabriel

2

Để tham khảo dịch vụ trong một giải pháp.

  1. Khởi động lại máy trạm của bạn

  2. Xây dựng lại giải pháp của bạn

  3. Cập nhật tham chiếu dịch vụ trong dự án WCFclient

Tại thời điểm này, tôi đã nhận được thông báo (Windows 7) để cho phép truy cập hệ thống. Sau đó, tham chiếu dịch vụ đã được cập nhật đúng mà không có lỗi.


2

Tôi muốn chia sẻ câu trả lời này mà tôi tìm thấy vì nguyên nhân của vấn đề không phải là tường lửa hoặc quá trình không nghe chính xác, đó là mẫu mã được cung cấp từ Microsoft mà tôi đã sử dụng.

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

Tôi đã thực hiện chức năng này gần như chính xác như bằng văn bản, nhưng điều xảy ra là tôi đã gặp lỗi này:

2016-01-05 12: 00: 48,075 [10] LRI - Lỗi là: System.Net.Sockets.SocketException (0x80004005): Không thể thực hiện kết nối nào vì máy đích đã chủ động từ chối nó [fe80 :: caa: 745: a1da: e6f1% 11]: 4080

Mã này sẽ nói rằng ổ cắm được kết nối, nhưng không theo đúng địa chỉ IP thực sự cần thiết để liên lạc đúng cách. (Được cung cấp bởi 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;
    }

Tôi đã viết lại mã để chỉ sử dụng IP hợp lệ đầu tiên mà nó tìm thấy. Tôi chỉ quan tâm đến IPV4 khi sử dụng cái này, nhưng nó hoạt động với localhost, 127.0.0.1 và địa chỉ IP thực sự của card mạng của bạn, nơi ví dụ do Microsoft cung cấp không thành công!

    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

Trong trường hợp của tôi, một số tên miền hoạt động, trong khi một số thì không. Thêm một tham chiếu đến Url proxy của tổ chức của tôi trong web.config đã khắc phục sự cố.

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

1

Tôi đã nhận được lỗi này từ các dịch vụ tham chiếu trên WCFhost từ tầng web của tôi. Những gì làm việc cho tôi có thể không áp dụng cho tất cả mọi người, nhưng tôi để lại câu trả lời này cho những người mà nó có thể. Số cổng cho WCFhost của tôi được IIS cập nhật ngẫu nhiên, tôi chỉ cần cập nhật các tuyến cuối đến các tham chiếu svc trong cấu hình web của mình. Vấn đề được giải quyết.


1

Trong kịch bản của tôi, tôi có hai ứng dụng:

  • Ứng dụng1
  • Ứng dụng 2

Giả định : App1 nên lắng nghe các hoạt động của App2 trên Cổng 5000

Lỗi : Khởi động App1 và cố gắng lắng nghe, đến một thị trấn ma không tồn tại, tạo ra lỗi

Giải pháp : Khởi động App2 trước, sau đó thử nghe bằng App1


1

Thêm một khả năng -

Đảm bảo bạn đang cố mở cùng một địa chỉ IP như nơi bạn đang nghe. Ứng dụng máy chủ của tôi đang lắng nghe địa chỉ IP của máy chủ bằng IPv6, nhưng máy khách đang cố kết nối trên địa chỉ IPv4 của máy chủ.


1

Trong trường hợp của tôi, điều này là do triển khai bị lỗi trong đó cài đặt trong web.config của tôi không được thực hiện.

Một đồng nghiệp giải thích rằng địa chỉ IP trong thông báo lỗi đại diện cho localhost.

Khi tôi sửa web.config, lúc đó tôi đang sử dụng url chính xác để thực hiện các cuộc gọi máy chủ và nó đã hoạt động.

Tôi nghĩ rằng tôi sẽ đăng bài này trong trường hợp nó có thể giúp đỡ ai đó.


0

Sử dụng WampServer 64bit trên Windows 7 Home Premium 64bit tôi gặp phải vấn đề chính xác này. Sau nhiều giờ và thử nghiệm, rõ ràng tất cả những gì cần thiết là trong my.ini để nhận xét một dòng. Sau đó, nó hoạt động tốt.

nhận xét ra 1 dòng socket = mysql

Nếu bạn đặt các tệp / dữ liệu / cũ của bạn vào vị trí thích hợp, WampServer sẽ chấp nhận tất cả chúng ngoại trừ thư mục / mysql / mà nó ghi đè lên. Vì vậy, sau đó tôi chỉ cần nhập một bản sao lưu dữ liệu / mysql / người dùng từ môi trường phát triển trước đó của tôi và chạy FLIV PRIVILEGES trong cửa sổ phpMyAdmin SQL. Công trình tuyệt vời. Một cái gì đó phải sai bởi vì mọi thứ không nên dễ dàng như vậy.


0

Tôi đã có vấn đề này xảy ra thường xuyên. Tôi thấy SQL Server Agentdịch vụ không chạy. Khi tôi bắt đầu dịch vụ bằng tay, nó đã được sửa. Kiểm tra kỹ xem dịch vụ có chạy hay không:

  1. Chạy dấu nhắc, nhập services.mscvà nhấn enter
  2. Tìm tên dịch vụ - SQL Server Agent( Tên trường hợp )

Nếu SQL Server Agentkhông chạy, bấm đúp vào dịch vụ để mở cửa sổ thuộc tính. Sau đó bấm vào Startnút. Hy vọng nó sẽ giúp được ai đó.


Tại sao đại lý SQL Server có liên quan đến IIS? Có lẽ bạn có nghĩa là dịch vụ WWW?
Nick.McDilyn

0

Tôi đã gặp lỗi này và mất một thời gian để giải quyết nó. Trong trường hợp của tôi, tôi đã cấu hình https và net.tcp dưới dạng các ràng buộc IIS trên cùng một cổng. Rõ ràng bạn không thể có hai thứ trên cùng một cổng. Tôi đã sử dụng lệnh netcat -ap tcp để kiểm tra xem có cái gì đang nghe trên cổng đó không. Không có ai nghe. Loại bỏ ràng buộc không cần thiết (https trong trường hợp của tôi) đã giải quyết vấn đề của tôi.


0

Đó là một vấn đề ngớ ngẩn về phía tôi, tôi đã thêm defaultproxy vào web.config để chặn lưu lượng trong Fiddler, và sau đó quên xóa nó!


0

Có một dịch vụ gọi là "Trình duyệt SQL Server" cung cấp thông tin kết nối SQL Server cho khách hàng.

Trong trường hợp của tôi, không có giải pháp nào hiện có hoạt động được vì dịch vụ này không chạy. Tôi đã tiếp tục nó và mọi thứ trở lại hoạt động hoàn hảo.


0

Tôi đã phải đối mặt với vấn đề này ngày hôm nay. Của tôi là Asp.Net Core API và nó sử dụng Postgresqllàm cơ sở dữ liệu. Chúng tôi đã cấu hình cơ sở dữ liệu này như một container Docker. Vì vậy, bước đầu tiên tôi làm là kiểm tra xem tôi có thể truy cập cơ sở dữ liệu hay không. Để làm điều đó tôi đã tìm kiếm PgAdminngay từ đầu vì tôi đã cấu hình tương tự. Nhấp vào ứng dụng kết quả sẽ chuyển hướng bạn đến http://127.0.0.1:23722/browser/ . Ở đó bạn có thể thử truy cập cơ sở dữ liệu của bạn trên menu bên trái. Đối với tôi, tôi đã nhận được một lỗi như trong hình dưới đây.

nhập mô tả hình ảnh ở đây

Nhập mật khẩu và thử xem bạn có thể truy cập nó hay không. Đối với tôi nó không hoạt động. Vì nó là một container Docker, tôi quyết định khởi động lại máy tính để bàn Docker của mình, để làm điều đó nhấp chuột phải vào biểu tượng docker trong thanh tác vụ và nhấp vào khởi động lại.

Một lần sau khi khởi động lại Docker, tôi đã có thể đăng nhập và xem Cơ sở dữ liệu và cũng đã xảy ra lỗi khi tôi khởi động lại ứng dụng trong Visual Studio .

Hy vọng nó giúp.


0

nó có thể là do vấn đề ủy quyền; đó là trường hợp của tôi Nếu bạn có ví dụ: [Authorize("WriteAccess")]hoặc [Authorize("ReadAccess")]ở đầu các chức năng điều khiển của bạn, hãy thử nhận xét chúng.


0

Đối với tôi, tôi muốn bắt đầu mongo trong shell (không liên quan đến bối cảnh chính xác của câu hỏi, nhưng có cùng thông báo lỗi trước khi bắt đầu mongo trong shell)

Quá trình 'Dịch vụ MongoDB' không chạy trong Dịch vụ

Bắt đầu cmd là Quản trị viên và loại,

net start MongoDB

Chỉ cần thấy MongoDB hoạt động và chỉ cần gõ mongo, trong cmd, nó sẽ cung cấp chi tiết phiên bản Mongo và URL kết nối Mongo


0

Tôi vừa mới đối mặt với điều này ngay bây giờ ...

nhập mô tả hình ảnh ở đây

Cuối cùng, tôi có 2 giải pháp Visual Studio riêng biệt (.sln) ... đã mở từng giải pháp trong ví dụ Visual Studio của riêng họ.

Giải pháp 2 gọi Giải pháp 1 mã. Vấn đề liên quan đến cổng được gán cho Giải pháp 1. Tôi đã phải thay đổi cổng trên giải pháp 1 sang một giải pháp khác và sau đó Giải pháp 2 bắt đầu hoạt động trở lại. Vì vậy, hãy chắc chắn rằng bạn kiểm tra cổng được giao cho dự án của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.