Làm thế nào để giải quyết ERR_CONNECTION_REFUSED khi cố gắng kết nối với localhost đang chạy IISExpress - Lỗi 502 (Không thể gỡ lỗi từ Visual Studio)?


98

Điều này đang chạy trên Windows Server 2008 và đã từng hoạt động vài tháng trước. Tôi vừa mới sử dụng lại máy chủ này cho một số nhà phát triển làm việc với VS.

Đây là máy chủ web trực tiếp cũng được sử dụng để phục vụ một số trang web thử nghiệm.

Điều này xuất hiện khi chạy Visual Studio, sau đó khởi chạy các dự án của tôi để gỡ lỗi.

Cố gắng khởi chạy bất kỳ trang web localhost:xxxxnào khi IISExpress đã được khởi chạy (sử dụng cổng thực tế # trong cấu hình để truy cập các trang web khác nhau):

This webpage is not available

ERR_CONNECTION_REFUSED

Tôi đã ở đây được vài ngày rồi, vì tôi đã đọc những người khác cũng gặp vấn đề tương tự, đã thử hầu hết những thứ tôi đã đọc bao gồm thay đổi managedruntimeversiontừ "v4.0" thành "v4.0.30319" cho .net 4.5 (Tôi chưa bao giờ phải làm điều này trước đây) và vô hiệu hóa mô-đun ghi nhật ký (tất cả các đề xuất được tìm thấy ở đây ).

Chỉ có hai mục nhập trong hoststệp của tôi trỏ đến địa chỉ IP máy chủ nội bộ. Không localhostcó IP hoặc tài liệu tham khảo liên quan.

Tôi đã tiến xa hơn khi cài đặt lại IIS Express và Visual Studio 2013. Tôi cũng đã tạo một WebApplicationtrang web hoàn toàn mới để cố gắng giải quyết vấn đề này (đơn giản và không có các ràng buộc phức tạp khác).

Khi tôi quay Fiddler, tôi thấy những điều sau trên trang:

[Fiddler] The socket connection to localhost failed. 
ErrorCode: 10061. 
No connection could be made because the target machine actively refused it 127.0.0.1:23162

Fiddler chụp

Tôi đã xóa tất cả cài đặt proxy khỏi phần kết nối mạng LAN của IE, nơi trước đó tôi nhận được một cửa sổ bật lên màu đỏ-x trong VS cho biết một cái gì đó như IISExpress không thể khởi chạy .

Đây không phải là vấn đề của SSL và không phải SSL.

Tôi đã cài đặt Máy chủ TFS - đã gỡ cài đặt trong trường hợp có một số ràng buộc kỳ quặc đang can thiệp.

Tôi đã thử xóa thư mục cấu hình / cài đặt IISExpress vài lần.

Applicationhost.config hiện tại chứa:

<site name="WebApplication1" id="4">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="C:\TFS-WorkRepository\Sandbox\WebApplication1\WebApplication1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:23162:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />

Tôi ước có một thẻ cho really-stuck.

Vui lòng đề xuất đi, vì tôi không muốn đi quá xa như quay một máy chủ mới.

- CẬP NHẬT -

Trong thanh URL, khi tôi nhập tên máy tính hoặc địa chỉ IP: xxxx, tôi nhận được ERR_CONNECTION_TIMED_OUTchứ không phải ERR_CONNECTION_REFUSED.


Câu trả lời:


100

Hãy thử thay đổi số cổng trong dự án của bạn?

Thuộc tính dự án → Web → Máy chủ → Url dự án:

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

Đừng quên nhấp Create Virtual Directoryhoặc trả lời "Có" cho lời nhắc tạo thư mục ảo sau khi bạn thay đổi số cổng của mình! (Cảm ơn Connor )

Lưu ý: Tôi hơi ngần ngại khi đăng bài này như một câu trả lời, vì tôi không biết vấn đề là gì hoặc nguyên nhân gây ra nó, nhưng tôi đã gặp vấn đề tương tự và việc thay đổi số cổng đã thực hiện một mẹo nhỏ đối với tôi. Tôi chỉ đăng điều này theo gợi ý trong các bình luận rằng điều này cũng hiệu quả với người khác.

Trong trường hợp của tôi, có vẻ như có điều gì đó mâu thuẫn với số cổng cụ thể mà tôi đang sử dụng, vì vậy tôi đã đổi sang một số khác và trang web của tôi xuất hiện ngay lập tức! Tôi không chắc điều đó có nghĩa là gì đối với số cổng cũ hoặc liệu tôi có thể sử dụng lại số đó hay không. Có lẽ ai đó hiểu biết hơn tôi có thể nói về điều này.


1
điều này hiệu quả với tôi - thay vì sửa đổi cài đặt trình duyệt như được đề cập trong Câu trả lời stackoverflow.com/questions/7227845/…
Don Cheadle

điều này đã làm việc cho tôi. sau khi thay đổi số cổng, tôi được nhắc thay đổi thư mục ảo của mình, thư mục này đã thay đổi theo cách nào đó không chính xác.
GraehamF

Cái này cũng có tác dụng với tôi. Không biết nó đã xảy ra như thế nào. Tôi đã dừng IIS Express và trong lần chạy tiếp theo, không có gì khác ngoài lỗi.
Joseph Ferris

1
Hãy chắc chắn nhấp vào 'Tạo Thư mục Ảo' sau khi bạn thay đổi số cổng của mình!
Connor Williams

Chỉ có điều này lại xảy ra với tôi hôm nay! : / Mặc dù tôi rất vui vì đề xuất của mình đã giúp ích cho mọi người, nhưng tôi chắc chắn ước rằng mình có thể tìm ra được điều gì đang xảy ra. Từ từ xem qua các số cổng có thể sử dụng ở đây: P
sǝɯɐſ

36

Cảm ơn tất cả các câu trả lời. Tôi đã thử tất cả chúng nhưng không có cái nào phù hợp với tôi. Công việc đã làm là xóa applicationhost.config khỏi thư mục .vs (được tìm thấy trong thư mục của dự án / giải pháp của bạn) và tạo một thư mục ảo mới (Thuộc tính dự án> Web> Tạo thư mục ảo). Hy vọng điều này sẽ giúp ai đó khác.


3
Tôi gặp phải vấn đề tương tự khi tôi mở giải pháp VS2015 trong VS2013 và làm việc trong đó một thời gian rồi quay lại VS2015. Xóa applicationhost.config đã giải quyết được vấn đề này.
Gary. Trả lời

Trong trường hợp của tôi applicationhost.config và việc khởi động lại Visual Studio đã dẫn đến "tải dự án không thành công". Tôi thậm chí không thể truy cập các thuộc tính của dự án sau đó.
Alex

34

Sự cố này có thể là do trước đây bạn đã sử dụng ràng buộc địa chỉ IP trong cấu hình ứng dụng của mình.

Các bước giải quyết vấn đề:

  • Chạy lệnh dưới đây trong thiết bị đầu cuối lệnh truy cập quản trị viên

netsh http hiển thị iplisten

Nếu bạn thấy một số điều như dưới đây thì giải pháp này có thể không giúp được bạn.

Địa chỉ IP có trong danh sách IP lắng nghe:

0.0.0.0

Nếu bạn thấy điều gì đó khác với 0.0.0.0 thì hãy thử các bước dưới đây để khắc phục sự cố này.

  • Chạy lệnh shell sau theo thứ tự với đầu cuối lệnh nâng cao

netsh http xóa iplisten ipaddress = 11.22.33.44

netsh http thêm iplisten ipaddress = 0.0.0.0

iisreset

  • (Đây 11.22.33.44 là IP thực tế cần được xóa)

Và bây giờ issexpress của bạn được thiết lập để lắng nghe bất kỳ ping nào đến với liên kết localhost.


@Niraj Kumar Chauhan đã cứu lấy nụ trong ngày !! Lifesaver ... Không chắc chắn 0.0.0.0 đã bị xóa như thế nào ngay từ đầu nhưng việc thêm nó trở lại đã giải quyết được vấn đề.
Sethles

Sau bảy giờ tìm kiếm lý do Máy chủ Báo cáo Power BI không nghe đúng cách: 2 giây thực hiện việc này đã khắc phục sự cố. Cảm ơn! Cấu hình hiện tại của chúng tôi có '::' thay vì 0.0.0.0; Điều này không giống nhau và / hoặc làm thế nào điều này có thể được thay đổi?
MattV

Này, nó đã hoạt động! Trên máy tính của tôi, lệnh đầu tiên không hiển thị địa chỉ IP, vì vậy tôi chỉ cần chạy lệnh "add" và lệnh "iisreset". Sau đó, tôi vẫn cần triển khai lại dự án của mình và khởi động lại IIS lần thứ hai, nhưng sau đó nó hoạt động.
Mathew Alden

20

Tôi vừa sửa lỗi này cho máy của mình. Có lẽ nó sẽ làm việc cho một số. Có thể không phải cho người khác, nhưng đây là những gì đã làm việc cho tôi.

Trong IIS, tôi phải thêm các ràng buộc cho https vào trang web mặc định (hoặc, tôi cho là trang web bạn đang chạy ứng dụng).

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

Bây giờ localhost của tôi hoạt động khi gỡ lỗi từ Visual Studio.


Chỉ cần lưu ý, việc kiểm tra xem đây có phải là vấn đề hay không chỉ đơn giản là thay đổi https thành http trong URL của bạn, vì ràng buộc http đã có sẵn.
DubDub

CÁi này đã sửa nó giúp tôi. Tôi nghi ngờ rằng khi tôi yêu cầu Visual Studio xây dựng ứng dụng thứ hai cho máy chủ IIS dành cho nhà phát triển của tôi, một cái gì đó hẳn đã xóa các ràng buộc của ứng dụng đầu tiên của tôi.
Mathew Alden

7

Tôi đã từng gặp vấn đề tương tự. Tôi đã thử các bước sau:

  1. Đóng Visual Studio 2017
  2. Đã xóa [solutionPath] .vs \ config \ applicationhost.config
  3. Đã mở lại giải pháp và nhấp vào [Tạo thư mục ảo]
  4. Cố gắng chạy => ERR_CONNECTION_REFUSED
  5. THẤT ​​BẠI

Một lần thử khác:

  1. Đóng Visual Studio 2017
  2. Đã xóa [solutionPath] .vs \ config \ applicationhost.config
  3. Đã xóa. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Đã mở lại giải pháp và nhấp vào [Tạo thư mục ảo]
  5. Cố gắng chạy => ERR_CONNECTION_REFUSED
  6. THẤT ​​BẠI

Một lần thử khác:

  1. Đóng Visual Studio 2017
  2. Đã xóa [solutionPath] .vs \ config \ applicationhost.config
  3. Đã xóa. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Đã thêm 127.0.0.1 localhost vào C: \ Windows \ System32 \ drivers \ etc \ hosts
  5. Đã mở lại giải pháp và nhấp vào [Tạo thư mục ảo]
  6. Cố gắng chạy => ERR_CONNECTION_REFUSED
  7. THẤT ​​BẠI

HOẠT ĐỘNG GÌ:

  1. Đóng Visual Studio 2017
  2. Xóa [solutionPath] .vs \ config \ applicationhost.config
  3. Bắt đầu "Quản lý chứng chỉ máy tính" và Định vị chứng chỉ "localhost" trong Cá nhân-> Chứng chỉ nhập mô tả hình ảnh ở đây
  4. Xóa chứng chỉ đó (làm điều này với rủi ro của riêng bạn)
  5. Bắt đầu bảng điều khiển \ Tất cả các mục trong bảng điều khiển \ Chương trình và tính năng
  6. Tìm "IIS 10.0 Express" (hoặc phiên bản IIS Express của riêng bạn)
  7. Nhấp vào "Sửa chữa" nhập mô tả hình ảnh ở đây
  8. Mở lại giải pháp và nhấp vào [Tạo thư mục ảo]
  9. Bắt đầu dự án web.
  10. Bạn sẽ nhận được câu hỏi này: nhập mô tả hình ảnh ở đây. Nhấp vào "Có"
  11. Bạn sẽ nhận được câu hỏi này: nhập mô tả hình ảnh ở đây. Nhấp vào "Có"
  12. Bây giờ nó hoạt động.

6

Giải pháp của Sam đã hiệu quả với tôi, nhưng tôi không muốn chạy với tư cách quản trị viên như một giải pháp lâu dài.

Đây là cách tôi đã giải quyết nó trong trường hợp của tôi:

  1. Chạy CMD với tư cách quản trị viên
  2. Nhập "netsh http show urlacl" và tìm url dành riêng với cổng liên quan
  3. Nhập "netsh http delete urlacl url = YourReservedUrlHere"

Sau đó, tôi có thể chạy ứng dụng của mình mà không cần quyền quản trị viên. Nhưng nó đã gây rối với khả năng duyệt đến ứng dụng của tôi từ một máy tính bên ngoài. Đủ gần cho tôi bây giờ.


Cảm ơn, đã giải quyết vấn đề của tôi. Sau khi xóa URL dành riêng, hãy xây dựng lại dự án và sau đó nó hoạt động hoàn hảo mà không cần chế độ Quản trị viên.
Parveen

5

Trong trường hợp của tôi, đó là do khởi động IIS mà không có quyền quản trị. Khi tôi khởi chạy IIS với tư cách là quản trị viên và bắt đầu trang web, nó hoạt động tốt


Đây là câu trả lời cho tôi, mặc dù tôi không nhớ đã chạy VS với tư cách quản trị viên lần đầu tiên tôi mở dự án khi nó hoạt động.
Stafford Williams,

oh yea duh (vỗ vào trán)
johntosystemur

3

Trong trường hợp của tôi, đó là do tràn vòng lặp / ngăn xếp vô hạn.


1

Tôi đã giải quyết vấn đề này bằng cách khởi động Visual Studio với Run as administrator . Điều này cũng là bắt buộc nếu bạn muốn xuất bản dự án của mình lên IIS địa phương.

Để đặt điều này vĩnh viễn: -

  1. Nhấp chuột phải vào biểu tượng Visual Studio
  2. Lựa chọn Properties
  3. Nhấp chuột Advanced
  4. Đảm bảo Run as administrator đã đăng ký
  5. Nhấp vào OKtất cả các cách thoát ra.
  6. Khởi động Visual Studio, tải dự án của bạn và bắt đầu gỡ lỗi

1

Trong trường hợp của tôi, đồng nghiệp của tôi đã thay đổi tên giải pháp để sau khi tôi tải phiên bản mới nhất của dự án, tôi chạy ứng dụng web của mình với IIS EXPRESS, sau đó tôi nhận được thông báo ERR_CONNECTION_REFUSEDtrong google chrome của mình.

Sau khi tôi thử tất cả các giải pháp mà tôi tìm thấy trên internet, cuối cùng tôi đã giải quyết được sự cố bằng các bước sau:

  1. Đóng VS
  2. Xóa .vsthư mục trong thư mục dự ánnhập mô tả hình ảnh ở đây

  3. Chạy với tư cách quản trị viên VS

  4. Mở Gỡ lỗi> Thuộc tính [Ứng dụng của bạn]> Web

  5. Thay đổi cổng trong URL dự án và đừng quên sử dụng https vì trong trường hợp của tôi, khi tôi sử dụng httpnó vẫn không hoạt động.

  6. Nhấp chuột Create virtual directory

  7. Chạy lại ứng dụng bằng IIS EXPRESS.

  8. Và ứng dụng web đã chạy thành công.

Hy vọng những điều này sẽ giúp.


1

Tôi đã giải quyết bằng cách đi tới Thuộc tính dự án -> Gỡ lỗi, sau khi bật SSL và sử dụng địa chỉ trong trình duyệt của bạn

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


0

Xây dựng lại Tất cả đã làm việc cho tôi. VS2013, IIS Express.


0

Đảm bảo rằng bạn cũng đã chỉ định trang bắt đầu. Nhấp chuột phải vào trang .aspx bạn muốn sử dụng làm trang bắt đầu của mình và chọn "Đặt làm trang bắt đầu"


0

Một công việc đơn giản xung quanh (nó hoạt động với tôi) là sử dụng địa chỉ IP thay vì localhost. Điều này sẽ ổn cho các nhiệm vụ phát triển của bạn.


0

Tôi đã thử rất nhiều phương pháp trên Chrome nhưng cách duy nhất phù hợp với tôi là "Xóa dữ liệu duyệt web"

Phải làm phiên bản "nâng cao" vì tiêu chuẩn không hoạt động. Tôi nghi ngờ đó là "Cài đặt nội dung" đang làm điều đó.


0

Gần đây tôi gặp sự cố này khi sao chép mã nguồn từ một máy khác.

-> Xóa thư mục .vs (nó là thư mục ẩn, vì vậy hãy đảm bảo bạn đã bật tùy chọn xem thư mục ẩn)
-> mở visual studio và xây dựng dự án của bạn. Visual studio sẽ tạo thư mục .vs mới theo cấu hình hệ thống hiện tại


0

Mặc dù có lẽ không liên quan đến vấn đề của bạn, nhưng tôi đã gặp vấn đề tương tự ngày hôm nay. Hóa ra, tôi đã bật mô-đun Viết lại URL để buộc trang web của tôi sử dụng HTTPS thay vì HTTP và trên môi trường sản xuất của tôi, điều này hoạt động tốt. Nhưng trên hệ thống phát triển của tôi, nơi nó chạy như một ứng dụng trong trang web mặc định của tôi, nó không thành công ...
Hóa ra, trang web mặc định của tôi không có ràng buộc đối với HTTPS nên mô-đun viết lại sẽ gửi cho tôi từ HTTP sang HTTPS, nhưng không có gì đang nghe cổng HTTPS ...
Có khả năng bạn gặp sự cố này vì một lý do tương tự. Lỗi này dường như xảy ra nếu không có ràng buộc thích hợp cho trang web bạn đang cố truy cập ...


0

Điều này có thể liên quan đến một nhóm nhỏ nhất định những người có vấn đề này ... có lẽ theo một cách khác.

Tôi đã buộc chuyển hướng https trên RELEASE.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
  filters.Add(new HandleErrorAttribute());
  #if !DEBUG
  filters.Add(new RequireHttpsAttribute());
  #endif    
}

Và không có https được bật trên iis express của tôi. Hoạt động chính xác trên DEBUG


0

Tôi chỉ đơn giản là cố gắng Liên kết IP với IIS nhưng cuối cùng lại gây rối với các tệp cấu hình IIS. Tôi thực sự đã thử hơn 20 giải pháp cho việc này, bao gồm

  1. Xóa tệp .vs của một giải pháp dự án
  2. Xóa tệp cấu hình thư mục IIS
  3. Xóa thư mục IIS
  4. Cập nhật VS2019
  5. Sửa chữa VS2019
  6. Vô số lần máy và VS khởi động lại
  7. các lệnh khác nhau trên CMS
  8. các bản cập nhật phần mềm khác nhau
  9. Nhiều cổng thay đổi

nhưng những gì hiệu quả có thể làm việc cho người khác cũng như REPAIRIIS từ

Control Panel\Programs\Programs and Features

Khác mà bạn có thể tham khảo câu trả lời này là tốt

Sửa chữa IIS10


0

Đảm bảo gỡ lỗi tập lệnh bị tắt

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

Tôi đã nhận được điều này không liên tục mặc dù đã thử một số đề xuất ở trên. Ngay sau khi tôi tắt tính năng này, việc gỡ lỗi trang web của tôi đã hoạt động như một giấc mơ. (Hãy nghĩ rằng tôi chỉ bật nó một cách tình cờ, hoặc có lẽ trong một kiếp trước).


0

Nếu bạn đang sử dụng IIS "thực", điều này có thể xảy ra nếu dịch vụ W3SVC (World Wide Web Publishing) bị dừng.

Có vẻ hiển nhiên nhưng nếu bạn vô tình dừng dịch vụ hoặc đặt nó ở chế độ thủ công, điều này có thể xảy ra với bạn.

Tôi biết tiêu đề nói là IIS express nhưng google dường như không lọc ra express ngay cả khi sử dụng gợi ý -Express, vì vậy hy vọng điều này sẽ giúp ích cho ai đó đã tìm thấy trang này thay vì một IIS cụ thể.

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.