Không thể bắt đầu trang web trong IIS (sử dụng bởi một quy trình khác)


96

Khi tôi cố gắng bắt đầu một trang web trong IIS, nó nói:

quy trình không thể truy cập tệp vì nó được sử dụng bởi một quy trình khác

Tôi đã tìm kiếm trên Google và thấy rằng một trang web khác có thể đang sử dụng Cổng 80 nhưng trong MyIIS, tôi thấy rằng chỉ có trang web này đang sử dụng Cổng 80. Còn điều gì khác có thể đang sử dụng Cổng 80 hoặc có vấn đề khác liên quan không?


khởi động lại hệ thống của bạn một lần rồi thử.
عثمان غني

tôi đã nó bu lại xảy ra cùng một vấn đề

1
Hãy thử cấu hình IIS để chạy trên một cổng khác. Bạn có thể có một máy chủ khác đang chạy trên máy của bạn. Bất kỳ phiên bản apache nào? Có một số sâu cũng mở cổng 80 như một cửa sau trên các máy tính bị nhiễm.
nunespascal

Văn bản lỗi này chắc chắn không hữu ích nhưng nếu bạn kiểm tra nhật ký trình xem sự kiện thì nó cho bạn một số gợi ý rằng đã xảy ra lỗi khi liên kết với cổng 8080 (được sử dụng bởi trang web trong IIS của tôi). Trên hộp windows 10 của tôi, nó ghi lại hai lỗi từ IIS-W3SVCHttpEventnguồn. Văn bản nhật ký sự kiện thứ hai - Unable to bind to the underlying transport for [::]:8080. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.. Cổng 8080 đã được dịch vụ Oracle sử dụng. Tôi đã thay đổi cổng được trang web của mình sử dụng thành 8081
RBT

Câu trả lời:


176

Kiểm tra bằng cách sử dụng netstat -aonhoặc netstat -aon | findstr 0.0:80trong dấu nhắc lệnh để xem Id tiến trình nào đang NGHE đến cổng: 80 và sau đó xem Id tiến trình (PID) đó trong Trình quản lý tác vụ với chế độ xem-> chọn cột-> id tiến trình được chọn. Kết thúc quá trình đó, khởi động lại IIS và bạn đã hoàn tất. ( Lưu ý: nếu bạn đã cài đặt Skype , hãy thử thoát quy trình đó trước. )

Trong Trình quản lý tác vụ hiện đại, bạn cần chuyển đến tab Chi tiết để tìm kiếm PID. Hoặc, như được đề cập bởi @Nikita G trong phần nhận xét, bạn có thể sử dụng lệnh này để tìm tác vụ từ dấu nhắc lệnh của mình:

tasklist /FI "PID eq 123"

Lưu ý: thay đổi 123với PID được trả về từ lệnh đầu tiên.


11
Cảm ơn bạn cũng đã nhận xét Skype.
Keith

Skype đang chạy trên cổng 80 và các trang web của tôi cũng được cấu hình trên cổng 80 vì vậy tôi cố định vấn đề này bằng cách đăng xuất skype rồi sau đó tôi thay đổi thiết lập của skype để chạy trên cổng 8080. (Không bắt buộc phải bắt đầu IIS)
Umar Shafeeq

1
Thật thú vị khi các sản phẩm của Microsoft chiến đấu ... cho đến khi bạn phải tiếp tục khởi động lại máy tính của mình khi bạn nhận ra nó lại xảy ra vì một lý do nào đó không rõ và không đủ năng lượng để tìm ra nguyên nhân gây ra nó (cho đến bây giờ). Nghiêm túc đấy, rất khó chịu.
andyface

10
Đây là cách dễ dàng hơn một chút để làm điều đó. Chỉ hiển thị các mục nghe trên cổng 80 : netstat -aon | findstr 0.0:80. Và sau đó giả định rằng lợi nhuận PID 123, chạy sau để xem quá trình đó là: tasklist /FI "PID eq 123".
Nikita G.

1
Đối với tôi, đó là OracleServiceXEdịch vụ đã ăn hết cổng 8080 mà trang web mới trong máy chủ IIIS của tôi đang cố gắng liên kết với.
RBT

35

Nó đang xảy ra do một quá trình khác đang sử dụng cổng 80, nó có thể là một ứng dụng trò chuyện trên PC của bạn như Skype.

Đầu tiên, hãy thay đổi cổng trang web mặc định là 80 thành một số cổng không sử dụng (ví dụ: 8087). Để đạt được điều này, hãy nhấp chuột phải vào ứng dụng và sau đó nhấp vào 'Chỉnh sửa ràng buộc'.

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

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

Sau khi thay đổi cổng này khởi động lại một lần nữa. Bây giờ bạn có thể xác định quy trình nào đang chặn IIS Port 80. Để kiểm tra điều này, hãy sử dụng lệnh netstat hiển thị chi tiết về cổng cùng với ID quy trình.


6
skype là vấn đề của tôi
nbushnell

tương tự ở đây, skype đang sử dụng cổng 80. Tắt nó trong Tùy chọn -> Nâng cao -> Kết nối -> "Sử dụng cổng 80 và 442 để bổ sung ..."
Wagner da Silva

25

Đăng xuất khỏi Skype và thử lại. Tôi đã gặp sự cố tương tự và tôi vừa đăng xuất khỏi Skype, sau đó đặt lại IIS của mình. Nó đã làm việc cho tôi.


2
Bạn có thể thay đổi cổng mà Skype sử dụng từ cài đặt
3ventic

10

Bạn cũng có thể chạy lệnh này để tìm ra ứng dụng hoặc dịch vụ nào đang sử dụng cổng và sau đó truy tìm nó trong Task manager (Miễn là nó không phải là Web Deploy Agent Service).

netstat -o -n -a | findstr 0.0: 80

Sau đó, mở Trình quản lý tác vụ, đi tới Quy trình, nhấp vào hộp kiểm "Hiển thị quy trình cho tất cả người dùng" rồi nhấp vào trình đơn Xem và Chuyển đến Cột, thêm cột PID.

Khớp ID quy trình từ lệnh netstat với PID trong trình quản lý tác vụ và bạn sẽ tìm thấy dịch vụ hoặc ứng dụng đang sử dụng cổng.


2
Trong trường hợp bạn muốn tránh nhiệm vụ mở quản lý, hãy chạy lệnh ngay sau sau để xem quá trình đó là: tasklist /FI "PID eq <PID from netstat (without brackets)>".
Nikita G.

2

Như những người khác đã nói, một cái gì đó khác có thể đang sử dụng cổng 80 hoặc 443. Đối với tôi, đó là VMWare Workstation Server, nhưng hãy kiểm tra các câu trả lời khác để biết cách sử dụng netstat.


+1 khi đề cập đến cổng 443. Tôi đang sử dụng netstatđể kiểm tra cổng 80 và không có gì hiển thị. Sau đó, bạn đề cập đến cổng 443 và nó đã ở đó.
jtate

1

Tôi nghĩ liên kết này đưa ra lời giải thích khá tốt và cách khắc phục sự cố này http://support.microsoft.com/KB/890015

Hầu hết thời gian; nó gây ra bởi một trong hai lý do: 1) cổng 80 đang được sử dụng bởi thứ khác và theo đề xuất của những người khác, bạn có thể sử dụng netstat -o -n -a | findstr 0.0: 80 để xem có phải trường hợp này không. Nếu có, hãy tắt quy trình từ trình quản lý tác vụ (đánh dấu vào hiển thị quy trình từ tất cả người dùng)

2) nếu cổng 80 không được sử dụng, nguyên nhân thứ hai có thể là địa chỉ ip không hợp lệ trong ListenOnlyList được lưu trong khóa đăng ký của HTTP-> Tham số. Nếu bạn theo liên kết để đặt khóa theo cách thủ công hoặc trên thực tế, bạn có thể sử dụng (xp và máy chủ 2003) httpcfg delete iplisten -i ipaddressđể xóa địa chỉ ip không hợp lệ. Bạn phải khởi động lại http sau khi bạn chỉnh sửa địa chỉ ipad!


@bummi cảm ơn vì nhận xét. Tôi đã thêm một chút chi tiết bây giờ.
stt106 15/12/14

0

Trong trường hợp của tôi, đó là " Dịch vụ chia sẻ đồng bộ hóa " (SyncShareSvc) đang chạy và sử dụng cổng 80. Tuy nhiên, netstat hiển thị 80 là miễn phí. Tôi có thể khiến trang web chạy trên một cổng khác, nhưng không phải là 80. Nếu tôi thêm tên Máy chủ, IIS sẽ cho phép tôi khởi động trang web, nhưng tôi sẽ được nhắc xác thực Thông số khi duyệt đến máy chủ cục bộ (hoặc bất kỳ tên máy chủ nào tôi thêm). Chỉ Xác thực của Biểu mẫu và Ẩn danh được kích hoạt trong IIS ...

Tôi cũng nhận thấy rằng, sau khi dừng IIS, http://localhostvẫn nhắc tôi xác thực Thông báo.

Giải pháp - trong trường hợp của tôi - là xóa Dịch vụ tệp và lưu trữ> Tệp và Dịch vụ iSCSI> " Thư mục công việc " khỏi các dịch vụ đã cài đặt (yêu cầu khởi động lại).

Sau khi xóa dịch vụ "Thư mục công việc" và khởi động lại, IIS đã hoạt động như mong đợi.


0

Trường hợp của tôi là sau khi cài đặt RD Web Access, không thể khởi động các trang web mặc định ban đầu. Đã xóa vai trò Truy cập Web RD vẫn như cũ. Đã xóa ràng buộc cổng 443 đã giải quyết được sự cố.


0

Hầu hết khi điều này xảy ra bởi các nhà phát triển web là lý do apache, vì vậy nếu bạn đi tới tệp cấu hình từ apache! mở nó lên và tìm kiếm bằng ctrl + f thành 80 và thay đổi ip bạn sẽ thấy thành 8080 và câu bên dưới có 80 thành 8080 và bạn cần xác định điều đó trong xampp của bạn hoặc chương trình bạn đang sử dụng hiện tại

Hy vọng tôi sẽ giúp các bạn ra ngoài


Câu hỏi là về IIS, không phải apache.
C. Helling

1
Yea, nhưng 2 chương trình này can thiệp vào eachother như vậy có lẽ tôi sẽ giúp ai đó có cùng một vấn đề như tôi đã có
Arne Schouten

0

Để có thêm thông tin có ý nghĩa, một cách là cũng nhận được thông tin quyền sở hữu khi phát hành netstatđể bạn biết quy trình đang sử dụng 80 (liên kết http mặc định) hoặc 443 (nếu liên kết https được xác định):

 netstat -ab

Trong trường hợp của tôi, thủ phạm là vmware:

TCP 0.0.0.0:443 Máy tính Tên: 0 NGHE
[vmware-hostd.exe]

netstat có thể được đưa vào find để tìm kiếm các cổng 80 hoặc 443 (ví dụ find ":443"), nhưng những kết nối đang hoạt động cụ thể này sẽ hiển thị ở đầu danh sách mà chúng rất dễ nhìn thấy.

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.