2013-02-14 59 views
19

Tôi đang sử dụng VS2012 với IIS Express và dường như không thể duyệt các trang web của tôi bằng Địa chỉ IP của tôi. Có cách nào để làm điều đó không? Nó được sử dụng để làm việc tốt với các phiên bản trước của VS.Duyệt Web Site Với Địa chỉ IP Thay vì localhost

Ví dụ, địa chỉ này hoạt động tốt:

http://localhost:64651/ 

Nhưng, địa chỉ này không hoạt động.

http://192.168.252.165:64651/ 

Tôi chắc chắn địa chỉ IP, vì tôi vừa nhận được nó bằng ipconfig.

+0

hiện 127.0.0.1:64651 hoạt động? – LDJ

+0

Không, 'http: //127.0.0.1: 64651 /' không hoạt động. Không thể tìm thấy trang web. Khi tôi thay đổi URL thành 'http: // localhost: 64651 /' trang web xuất hiện tốt. – ADH

+0

Bạn có cấu hình chuyển tiếp cổng không? nếu không thấy http://portforward.com/ –

Trả lời

32

Đi tới thư mục IISExpress>Config của bạn, định vị applicationhost.config. Thay đổi <bindings> như sau:

<bindings> 
     <binding protocol="http" bindingInformation="*:1407:YOUR_IP_ADDRESS" /> 
</bindings> 

Trước khi bạn làm điều này, bạn sẽ phải đăng ký địa chỉ IP này bằng netsh lệnh như sau:

Port forwarding trong Windows 7

Nếu bạn chạy Windows 7, khá nhiều tất cả các kết nối đến đều bị khóa, vì vậy bạn cần phải cho phép cụ thể các kết nối đến ứng dụng của bạn. Đầu tiên, bắt đầu một dấu nhắc lệnh quản trị. Thứ hai, chạy các lệnh sau, thay thế 192.168.1.11:1234 với bất cứ điều gì chỉ IP và cổng bạn đang sử dụng:

> netsh http add urlacl url=http://192.168.1.11:1234/ user=everyone 

này chỉ nói http.sys rằng nó ok để nói chuyện với url này.

QUAN TRỌNG: Thông số người dùng = mọi người phải được chỉ định theo ngôn ngữ hệ thống. Vì vậy, nếu ngôn ngữ cửa sổ của bạn là tiếng Tây Ban Nha thì tham số phải là user = todos.

> netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=1234 profile=private remoteip=localsubnet action=allow 

này thêm một quy tắc trong Windows Firewall, cho phép kết nối đến cổng 58.938 cho các máy tính trên các thông tin subnet.More địa phương của bạn tại this link.

Port forwarding Mac OS X

Bước 1: Xem Current Rules Firewall

sudo ipfw show 

Bước 2: Thêm Port Forwarding Rule (80-8080)

Cổng mặc định mà Tomcat chạy trên là 8080, vì vậy ở đây chúng tôi hiển thị lệnh để thực hiện cổng fowarding từ cổng 80 đến 8080 (cổng mặc định của Tomcat). Rõ ràng, điều này cũng phù hợp với các cổng khác và bạn chỉ cần điều chỉnh lệnh cho phù hợp.

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in 

Đây là thay đổi tạm thời và nó sẽ hoàn nguyên sau khi bạn khởi động lại. Nếu bạn muốn làm cho nó vĩnh viễn, bạn có thể tạo một deamon lauch cho nó.

Tùy chọn Remove Rule

Nếu bạn muốn loại bỏ quy tắc tường lửa của bạn chạy:

sudo ipfw flush 

Port Forwarding Sử dụng PFCTL (aka PF) trên Mac OS X

Các thiết lập cho pfctl tương tự như ipfw. Người dùng Github kujon đã tạo một nice guide để hiển thị cách thiết lập cổng chuyển tiếp từ cổng 80 đến cổng khác bằng cách sử dụng pfctl.

Lưu ý: Đảm bảo thay đổi các ràng buộc của dự án của bạn chỉ bằng cách định vị tên của dự án. Bạn thậm chí có thể giữ cho localhost ràng buộc và thêm một cái mới, theo cách này bạn có thể truy cập cùng một trang web bằng cách sử dụng cả hai địa chỉ IP cho trước và ràng buộc localhost cũ của bạn.

+0

Cảm ơn bạn đã phản hồi. Tôi đang sử dụng Windows 7 Enterprise. Làm cách nào để đăng ký Địa chỉ IP bằng netsh? – ADH

+0

OK, tôi có thể xem trang web với cả localhost và địa chỉ ip của tôi từ máy của tôi. Nhưng, và có lẽ tôi nên đề cập đến điều này ngay từ đầu, iPod Touch của tôi, được kết nối với cùng một mạng không dây, không thể nhìn thấy trang web. Toàn bộ vấn đề là tôi đang cố gắng xây dựng một trang web cho các thiết bị di động và triển khai tới một máy chủ từ xa mất quá nhiều thời gian để kiểm tra các thay đổi. – ADH

+0

Tôi đã đánh dấu câu trả lời là đã giải quyết. Tôi cũng đã xác minh tường lửa Inbound Rule được thêm vào. Đã thử một máy khác trên mạng, nhưng vẫn không thể xem trang web mặc dù tôi có thể ping từ đó đến máy cục bộ của tôi. – ADH

Các vấn đề liên quan