Làm cách nào để kích hoạt yêu cầu bên ngoài trong IIS Express?


466

Làm cách nào để kích hoạt các yêu cầu từ xa trong IIS Express? Scott Guthrie đã viết điều đó là có thể nhưng anh ta đã không nói như thế nào.


25
Có một phần mở rộng VS miễn phí cho điều này mà chúng tôi đã viết visualstudiogallery.msdn.microsoft.com/ Khăn
Jim W nói rằng phục hồi Monica

@JimW Jim, bạn có phải là người tạo ra plugin không? Xin vui lòng giải thích làm thế nào phép lạ này của kỹ thuật phần mềm hoạt động?
Ian Warburton

@IanWarburton cảm ơn vì đã gọi nó là phép màu! Đó là một máy chủ proxy ngược.
Jim W nói phục hồi Monica

@JimW Cảm ơn bạn đã tạo ra nó.
Ian Warburton

@JimW Tôi đã thử plugin của bạn và làm tất cả như bạn đã nói trong hướng dẫn. Nhưng tôi vẫn không thể truy cập localhost của mình
mark_spencer

Câu trả lời:


403

Hiện tại có một bài đăng blog trên trang web của nhóm IIS giải thích cách bật kết nối từ xa trên IIS Express . Đây là phần thích hợp của bài viết đó được tóm tắt:

Trên Vista và Win7, hãy chạy lệnh sau từ dấu nhắc quản trị:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Đối với XP, trước tiên hãy cài đặt Công cụ hỗ trợ Windows XP Service Pack 2. Sau đó chạy lệnh sau từ dấu nhắc hành chính:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)


121
Trong trường hợp có lỗi 503, hãy xem điều này: stackoverflow.com/questions/5442551/
Kẻ

5
Có một netshlệnh để cho phép kết nối trên bất kỳ tên máy chủ?
Đại tá Panic

33
Chỉ dành cho bản ghi, trong trường hợp bạn có máy Windows bằng ngôn ngữ không phải tiếng Anh, tham số của user={PARAM_USER}sẽ là ngôn ngữ của riêng bạn.
GoRoS

7
Sử dụng ký tự đại diện trong tham số url (ví dụ: url = http: // *: 8080 /) sẽ giúp kết nối hoạt động cho cả tên máy chủ và địa chỉ IP của máy tính.
Anders

2
Trong trường hợp lệnh thất bại (có thể là lỗi 1789), hãy tính đến lệnh mà người dùng mong đợi cho ngôn ngữ PC của bạn. Vì vậy, nếu PC của bạn bằng tiếng Bồ Đào Nha chẳng hạn, hãy sử dụng user=todosthay vì user=everyone.
Vitor Canova

350

Có ba thay đổi bạn có thể cần thực hiện.

  1. Nói với IIS Express để liên kết với tất cả các địa chỉ IP và tên máy chủ. Trong .configtập tin của bạn . Điển hình là:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • <VS 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

Tìm yếu tố ràng buộc trang web của bạn và thêm

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Thiết lập bit của Windows được gọi là 'http.sys'. Là quản trị viên, hãy chạy lệnh:
    netsh http add urlacl url=http://*:8080/ user=everyone

Trong trường hợp everyonelà một nhóm các cửa sổ. Sử dụng dấu ngoặc kép cho các nhóm có khoảng trắng như "Tout le monde".

  1. Cho phép IIS Express thông qua tường lửa Windows.

    Bắt đầu / Tường lửa Windows với Bảo mật nâng cao / Quy tắc gửi đến / Quy tắc mới ...

    Chương trình %ProgramFiles%\IIS Express\iisexpress.exe
    HOẶC Cổng 8080 TCP

Bây giờ khi bạn bắt đầu, iisexpress.exebạn sẽ thấy một thông báo như

URL đã đăng ký thành công "http: // *: 8080 /" cho trang web "hello world" ứng dụng "/"


22
NB Nếu bạn đang chạy phiên bản Windows được bản địa hóa, tham số users=everyonecho netsh(bước thứ hai) có thể gây ra lỗi 1789. Giải pháp là dịch everyonesang tên nhóm tương ứng trong ngôn ngữ của bạn.
mflodin

5
Làm thế nào để bạn có được một dự án Visual Studio để chấp nhận ràng buộc đó? Trong thuộc tính dự án, nơi bạn chỉ định Project Url, nếu tôi nhập dấu hoa thị cho tên máy chủ thì nó sẽ báo lỗi. Nếu tôi nhập bất cứ thứ gì khác, nó sẽ cố gắng tạo một thư mục ảo mới. Nó không liên kết đến mục trong application.config.
Trevor Elliott

20
Để làm cho nó hoạt động trong Visual Studio, bạn phải sử dụng tên máy chủ của máy tính ở bước 1 bindingInformation="*:8080:hostname"và bước 2 url=http://hostname:8080/và trong các thuộc tính dự án web Visual Studio của bạn trên tab Web đặt Project Url thành http://hostname:8080/. Xóa *urlacl nếu bạn đã tạo; nó sẽ không hoạt động nếu bạn có cả hai. Cuối cùng, URL mà bạn truy cập trong trình duyệt web của bạn phải tham chiếu tên máy chủ, không phải localhost.
Joe Daley

5
Tôi cũng phải có một dòng localhost trong phần tử liên kết, nếu không thì visual studio 2013 đã cố gắng tạo một mục nhập trùng lặp. ví dụ:<binding protocol="http" bindingInformation="*:8080:localhost" />
kristianp

3
Tôi cũng cần chạy Visual Studio với tư cách quản trị viên, nhưng câu trả lời này là kỹ lưỡng nhất.
dlsso

127

Tôi nhớ đã gặp phải những vấn đề tương tự trong khi thử quy trình công việc này vài tháng trước.

Đó là lý do tại sao tôi đã viết một tiện ích proxy đơn giản dành riêng cho loại kịch bản này: https://github.com/icflorescu/iothypress-proxy .

Sử dụng Proxy IIS Express , tất cả trở nên khá đơn giản - không cần đến Nets Netsh http thêm urlacl url = vaidesg: 8080 / user = mọi người, hoặc gây rối với ứng dụng của bạn trên ứng dụng.

Chỉ cần đưa ra điều này trong dấu nhắc lệnh:

iisexpress-proxy 8080 to 3000

Sau đó, bạn có thể trỏ các thiết bị từ xa của mình tới http: // vaidesg: 3000 .

Hầu hết thời gian đơn giản hơn IS tốt hơn.


3
Cảm ơn giải pháp tuyệt vời!
Thời gian mùa hè

1
Và tôi có thể thêm rằng các giải pháp Node.js như thế này là những giải pháp duy nhất hoạt động đáng tin cậy trên Azure, vì Azure xây dựng tự động tạo tệp applicationationhost.config và xóa các thay đổi ràng buộc của bạn.
TheHansinator

1
Tôi đã bắt đầu sử dụng IIS Express Proxy trên máy Mac của mình cùng với ngrok sau khi ngrok không hoạt động như mong đợi (vì tôi đã không thực hiện thao tác cấu hình IIS Express cần thiết). Rất tiện dụng! Cảm ơn bạn.
mã hóa

1
Đây là giải pháp dễ nhất. Tôi không muốn gây rối với ứng dụngationhost.config nếu tôi không phải làm vậy.
skalpin

4
Giải pháp tuyệt vời! Bây giờ để quay lại và hoàn tác mớ hỗn độn mà tôi đã tạo ra từ IIS Express.
Mitch Stewart

123

Không có gì làm việc cho tôi cho đến khi tôi tìm thấy iothypress-proxy .

Mở dấu nhắc lệnh với tư cách quản trị viên, sau đó chạy

npm install -g iisexpress-proxy

sau đó

iisexpress-proxy 51123 to 81

giả sử dự án Visual Studio của bạn mở trên localhost: 51123 và bạn muốn truy cập vào địa chỉ IP bên ngoài xxxx: 81

Chỉnh sửa: Tôi hiện đang sử dụng ngrok


7
giải pháp không đau
bahadir

4
Giải pháp dễ nhất tôi có thể tìm thấy. Có lẽ nên đổi tên gói thành một cái gì đó như web-proxy vì bạn có thể sử dụng nó cho nhiều hơn là chuyển tiếp iothypress :)
Mario Tacke

8
@xgp - Xin chào, tôi là tác giả của iothypress-proxy :-) Cuối cùng, bạn đã quản lý để làm cho nó hoạt động cho bạn chưa? Bạn phải đóng và mở lại dấu nhắc lệnh hoặc trong trường hợp hiếm khi sự kiện khởi động lại hệ điều hành. Thả tôi một dòng trong trang dự án ( github.com/icflorescu/iothypress-proxy ) nếu bạn có thêm câu hỏi và tôi sẽ cố gắng giúp đỡ nếu tôi có thời gian.
Irika-Cristian Florescu

1
Cảm ơn tất cả các bạn đã sử dụng nó và cho những lời tốt đẹp của bạn :-). @MarioTacke - vâng, tôi biết, nhưng nhiều người có thể tìm thấy nó chỉ bằng cách google nếu nó được gọi là iothypress-proxy :-)
-Cristian Florescu

1
Btw, điều này không hoạt động với xác thực Windows.
Tom

35

Như một sidenote cho điều này:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Điều này sẽ chỉ hoạt động trên các phiên bản tiếng Anh của Windows. Nếu bạn đang sử dụng phiên bản được bản địa hóa, bạn phải thay thế "mọi người" bằng một thứ khác, ví dụ:

  • "Iedereen" khi sử dụng phiên bản tiếng Hà Lan
  • "Jeder" khi sử dụng phiên bản tiếng Đức
  • "Mindenki" khi sử dụng phiên bản tiếng Hungary

Nếu không, bạn sẽ gặp lỗi (Tạo SDDL không thành công, Lỗi: 1332)


33

Một tài nguyên tốt là Làm việc với SSL tại Thời gian phát triển dễ dàng hơn với IISExpress của Scott Hanselman.

Những gì bạn đang theo đuổi là phần Bắt IIS Express phục vụ bên ngoài qua Cổng 80


Bài đăng trên blog này khuyên bạn nên cách ly cổng 80 thành "IISExpressWeb.exe". Phiên bản hiện tại của IIS Express thiếu exe của tên này - chỉ có IISExpress.exe và IISExpressTray.exe. Cô lập các kết nối để ngăn kết nối từ bên ngoài; loại bỏ giới hạn quy trình cho phép kết nối. .exe là gì để nhắm mục tiêu?
Chris Moschini

33

Nếu bạn đang làm việc với Visual Studio thì hãy làm theo các bước sau để truy cập IIS-Express qua IP-Adress:

  1. Nhận địa chỉ IP máy chủ của bạn: ipconfigtrong Dòng lệnh Windows
  2. Đi đến

    $(SolutionDir)\.vs\config\applicationHost.config
  3. Tìm thấy

    <site name="WebApplication3" id="2">
       <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" />
       </application>
       <bindings>
         <binding protocol="http" bindingInformation="*:62549:localhost" />
       </bindings>
    </site>
  4. Thêm: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    với Địa chỉ IP của bạn

  5. Chạy Visual Studio của bạn với quyền Quản trị viên và mọi thứ sẽ hoạt động
  6. Có thể tìm kiếm một số sự cố tường lửa nếu bạn cố gắng kết nối từ xa

20

Tôi đã giải quyết nó bằng cách cài đặt "Băng tải bằng Keyoti" trong Visual Studio Professional 2015. Băng tải tạo một địa chỉ XÓA (IP của bạn) với một cổng (45455) cho phép yêu cầu bên ngoài. Thí dụ:

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

Băng tải cho phép bạn kiểm tra các ứng dụng web từ máy tính bảng và điện thoại bên ngoài trên mạng hoặc từ trình giả lập Android (không có http://10.0.2.2:<hostport>)

Các bước trong liên kết sau:

https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti


@kilianeller vui lòng theo liên kết trong câu trả lời và đặt câu hỏi ở đó, chúng tôi có thể giúp bạn.
Jim W nói phục hồi Monica

Workst !!, tôi chứng minh tất cả các giải pháp khác (thay đổi ứng dụng.ost, Netsh, địa chỉ IPv6 ..) và không có gì, nhưng cài đặt này cuối cùng cũng hoạt động, vấn đề nhỏ duy nhất là đã đánh giá sai địa chỉ IP, nhưng không phải là vấn đề nghiêm trọng.
Ion

Thực sự dễ dàng để cài đặt. Chỉ cần đảm bảo bạn thêm chứng chỉ trên trình duyệt từ xa theo hướng dẫn trên trang của tiện ích mở rộng.
Andres

Tôi không thể tin được, nó hoạt động !!! RẤT ĐƠN GIẢN, RẤT HẤP DẪN !!! Tôi đã dành 5 giờ qua chỉ để tìm kiếm các giải pháp trống rỗng và cuối cùng tôi đã vượt qua điều này!
Ziggy192

10

Nếu bạn đã thử câu trả lời của Đại tá Panic nhưng không hoạt động trong Visual Studio, hãy thử điều này:

Nối một cái khác <binding />trong cấu hình IIS Express của bạn

<bindings>
    <binding protocol="http" bindingInformation="*:8080:localhost" />
    <binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>

Cuối cùng, bạn phải chạy Visual Studio với tư cách Quản trị viên


Thật không may, điều đó dường như không hiệu quả với tôi .. Tôi vẫn bị từ chối kết nối khi tôi cố truy cập ip cục bộ của mình trên cổng 8080
Thomas Teilmann

@ThomasTeilmann, trong Visual Studio, tôi đã phải mở các thuộc tính của ứng dụng web và trong tab Web, thay đổi "Project Url" để sử dụng tên máy chủ thay thế thay vì localhost.
Sam

@ThomasTeilmann, Oh, và tôi nghĩ bạn cần duyệt đến nó bằng tên máy chủ chứ không phải IP.
Sam

Thật ra tôi cũng đã thử cả hai thứ đó và nó không hoạt động với ví dụ đám mây: / Mặc dù vậy, cảm ơn
Thomas Teilmann

Đây là câu trả lời cho tôi (tức là chạy VS với tư cách quản trị viên) - cảm ơn @Bruce. Ngoài ra, tôi cũng phải tự sửa các cài đặt tường lửa của mình. Trong trường hợp của tôi (ví dụ: kiểm tra iphone của tôi có thể duyệt máy dev của tôi) mở cổng 8080 trên tường lửa không hoạt động (hả?) Nhưng mở truy cập bằng ip (ví dụ Phạm vi> IP cục bộ = 10.0.0.0/24 = nhà của tôi mạng) đã lừa
Ilan

8

Điều đã giúp tôi, là nhấp chuột phải vào biểu tượng 'IISExpress', 'Hiển thị tất cả các ứng dụng'. Sau đó chọn trang web và tôi thấy aplicationhost.config sử dụng trang web nào và việc sửa lỗi diễn ra hoàn hảo.

Cấu hình IISExpress


2
Câu trả lời này đã chỉ cho tôi một giải pháp khác, chỉnh sửa applicationationhost.config để chấp nhận : 55665: thay vì *: 55665: localhost
Deko

Cảm ơn @Deko - bình luận của bạn, cùng với lệnh Netsh được đề cập trong một vài câu trả lời khác, đã làm cho nó hoạt động với tôi.
Marcel Popescu

8

Đây là những gì tôi đã làm cho Windows 10 với Visual Studio 2015 để cho phép truy cập từ xa, cả với http và https:

Bước đầu tiên là liên kết ứng dụng của bạn với địa chỉ IP nội bộ của bạn. Chạy cmd-> ipconfigđể lấy địa chỉ. Mở tệp /{project folder}/.vs/config/applicationhost.configvà cuộn xuống cho đến khi bạn tìm thấy một cái gì đó như thế này:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

Thêm hai ràng buộc mới dưới bindings. Bạn cũng có thể sử dụng HTTPS nếu muốn:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

Thêm quy tắc sau vào tường lửa của bạn, mở cmdlời nhắc mới với tư cách quản trị viên và chạy các lệnh sau:

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

netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow

Bây giờ bắt đầu Visual Studio như Administrator. Nhấp chuột phải vào tệp dự án dự án web và chọn Properties. Chuyển đến Webtab và nhấp Create Virtual Directory. Nếu Visual Studio không chạy với tư cách Quản trị viên, điều này có thể sẽ thất bại. Bây giờ mọi thứ nên làm việc.

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


Đã làm cho tôi! :) Cũng có một bài viết hay ở đây: blog.kloud.com.au/2017/02/27/ Kẻ
Maccaferri

Tôi đã thử mọi thứ khác kể cả ngrok nhưng không có kết quả. Điều này làm việc trên lần thử đầu tiên.
kooldave98

5

Câu trả lời được chấp nhận cho câu hỏi này là một hướng dẫn để IIS Express hoạt động với webmatrix. Tôi thấy hướng dẫn này hữu ích hơn khi cố gắng làm cho nó hoạt động với VS 2010.

Tôi chỉ làm theo các bước 3 & 4 (chạy IIS Express với tư cách quản trị viên) và phải tạm thời vô hiệu hóa tường lửa của mình để nó hoạt động.


Các hướng dẫn bạn liên kết để mất khả năng gỡ lỗi từ Visual Studio, điều mà ít nhất theo quan điểm của tôi khiến nó trở nên vô nghĩa - sử dụng IIS hoặc bất kỳ máy chủ từ xa nào khác đều tốt hoặc tốt hơn (vì bạn có thể thiết lập gỡ lỗi từ xa trên IIS). Nếu IIS Express không yêu cầu quyền quản trị viên để chạy mà không có localhost thì điều này sẽ hoạt động. Rất phiền phức.
Chris Moschini

Đây chính xác là những gì tôi đang tìm kiếm - cảm ơn! Tôi đang sử dụng IIS Express với Visual Studio 2010 và sẽ thử nghiệm ứng dụng ASP.NET MVC3 trên mạng LAN của tôi và đây là thứ tôi cần để nó hoạt động :)
Lasse Christiansen

5

Bạn có thể thử thiết lập chuyển tiếp cổng thay vì cố gắng sửa đổi cấu hình IIS Express của mình, thêm quy tắc HTTP.sys mới hoặc chạy Visual Studio với tư cách Quản trị viên.

Về cơ bản bạn cần chuyển tiếp IP:PORT trang web của bạn chạy đến một số cổng miễn phí khác trên máy của bạn nhưng trên bộ điều hợp mạng bên ngoài, không phải localhost.

Vấn đề là IIS Express (ít nhất là trên Windows 10) liên kết với [::1]:port nghĩa là nó lắng nghe trên cổng IPv6. Bạn cần phải tính đến điều này.

Đây là cách tôi thực hiện công việc này - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html

Hy vọng nó giúp.


Tôi đang chạy Windows 10 và ràng buộc localhost với IPv6 là chìa khóa. Cảm ơn!
TomaszGuzialek

Máy tính tôi đang cố gắng cấu hình có một địa chỉ cục bộ khác. Nó được đặt tên là "local-dev". Tôi chỉ cần liên kết thêm v4tov6 listport = 3000 connectaddress = local-dev connectport = 60000 để làm cho nó hoạt động. Bài đăng tuyệt vời, cảm ơn bạn!
Anika

4

Cách đơn giản nhất và thú vị nhất mà tôi tìm thấy là sử dụng (mất 2 phút để thiết lập):

https://ngrok.com/

Nó sẽ hoạt động với bất cứ thứ gì chạy trên localhost. Chỉ cần đăng ký, chạy ít ưu đãi và bất cứ điều gì bạn chạy trên localhost đều nhận được URL công khai mà bạn có thể truy cập từ bất cứ đâu.

Điều này tốt cho việc hiển thị nội dung cho các đồng đội từ xa của bạn, không phải lo lắng với thiết lập IIS hoặc tường lửa. Muốn dừng truy cập chỉ cần chấm dứt thực thi.

ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ngrok http -host-header=localhost 89230

giả sử rằng 89230 là cổng IIS Express của bạn

Bạn cũng có thể chạy nhiều cổng ngay cả trên gói miễn phí


1
Ai có thể nghĩ rằng tôi sẽ phải đọc qua nhiều phản hồi như vậy cho đến khi tôi nhận được giải pháp ...
alexkovelsky

3

Tôi có một số vấn đề khi sử dụng IIS Express trong Win 8.1 và yêu cầu bên ngoài.

Tôi làm theo các bước này để gỡ lỗi yêu cầu bên ngoài:

  1. Cài đặt IIS
  2. Định cấu hình Visual Studio để sử dụng IIS cục bộ (Thuộc tính trang trong Dự án web của bạn)
  3. Tạo một AppPool độc quyền trong IIS để hoạt động với ứng dụng của tôi
  4. Trong Dự án của tôi, tôi đang sử dụng Máy khách Oracle và phải là 32 bit (64 bit không hoạt động với Visual Studio) thì tôi cần cho phép 32 bit trong Nhóm ứng dụng
  5. Định cấu hình tường lửa Windows để cho phép yêu cầu trong cổng 80 (quy tắc gửi đến)

Nó đang hoạt động!


2

Nếu bạn chạy Visual Studio từ Admin, bạn có thể thêm

<binding protocol="http" bindingInformation="*:8080:*" />

hoặc là

<binding protocol="https" bindingInformation="*:8443:*" />

vào

%userprofile%\My Documents\IISExpress\config\applicationhost.config

1
Tôi đã áp dụng cấu hình này $(SolutionDir).vs\config\applicationHost.configvà tôi cũng phải mở cổng (8443) của ứng dụng trong tường lửa Windows.
Tonatio

2

Tôi đã kích hoạt IIS cục bộ vì vậy tôi chỉ tạo quy tắc ghi lại vào cổng gỡ lỗi của mình ... Tôi nghĩ rằng cách này tốt hơn và mát hơn phương pháp khác vì dễ xóa hơn khi phát triển xong ... Đây là cách viết lại. .

<rewrite>
    <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
            <match url="^dev/(.*)" />
            <action type="Rewrite" url="http://localhost:47039/{R:1}" />
        </rule>
    </rules>
</rewrite>

VS cũng cho phép bạn phát triển trực tiếp bằng IIS cục bộ (sau đó cho phép kết nối từ xa) nhưng đến lượt bạn, bạn phải luôn chạy nó với tư cách quản trị viên ... Tôi không thích điều đó.


Đây cũng là giải pháp yêu thích của tôi, cảm ơn :) Tôi chỉ cần bật Reverse Proxy cho IIS của mình trước, sau đó thêm quy tắc này vào web.config.
Mahdi Ghiasi

1

Tôi đã giải quyết vấn đề này bằng cách sử dụng phương pháp proxy ngược.

Tôi đã cài đặt máy chủ wamp và sử dụng tính năng proxy ngược đơn giản của máy chủ web apache.

Tôi đã thêm một cổng mới để nghe máy chủ web Apache (8081). Sau đó, tôi đã thêm cấu hình proxy như virtualhost cho cổng đó.

<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>

1

Tôi đã làm tất cả các bước này và không có gì giúp tôi. Và những gì tôi cần, chỉ là chạy ứng dụng của tôi thông qua IIS Express ...

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

Hy vọng nó giúp.


0

Tôi không thể phục vụ các yêu cầu iis cho những người dùng khác trong mạng cục bộ của mình, tất cả những gì tôi phải làm (ngoài những điều trên) là khởi động lại bộ định tuyến BT Hub của tôi.


0

Điều này cực kỳ tuyệt vời và thậm chí bao gồm HTTPS với các tên miền đẹp:

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

Các phần thực sự tuyệt vời mà tôi không thể tìm thấy ở bất kỳ nơi nào khác trên SO trong trường hợp liên kết ở trên biến mất:

> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage:
> iisexpressadmincmd.exe <command> <parameters> Supported commands:
>       setupFriendlyHostnameUrl -url:<url>
>       deleteFriendlyHostnameUrl -url:<url>
>       setupUrl -url:<url>
>       deleteUrl -url:<url>
>       setupSslUrl -url:<url> -CertHash:<value>
>       setupSslUrl -url:<url> -UseSelfSigned
>       deleteSslUrl -url:<url>
> 
> Examples: 1) Configure "http.sys" and "hosts" file for friendly
> hostname "contoso": iisexpressadmincmd setupFriendlyHostnameUrl
> -url:http://contoso:80/ 2) Remove "http.sys" configuration and "hosts" file entry for the friendly  hostname "contoso": iisexpressadmincmd
> deleteFriendlyHostnameUrl -url:http://contoso:80/

Tiện ích trên sẽ đăng ký chứng chỉ SSL cho bạn! Nếu bạn sử dụng tùy chọn -UseSelfSign, nó cực dễ.

Nếu bạn muốn thực hiện mọi thứ một cách khó khăn, phần không rõ ràng là bạn cần cho HTTP.SYS biết nên sử dụng chứng chỉ nào, như thế này:

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

Certhash là "Thumbprint" bạn có thể nhận được từ các thuộc tính chứng chỉ trong MMC.


0

Tôi đã làm như sau và có thể kết nối:

1) đã thay đổi ràng buộc cấu hình IIS express từ máy chủ cục bộ thành '*'

giao thức ràng buộc = "http" bindIn information = "*: 8888: *"

2) Xác định quy tắc gửi đến trên tường lửa để cho phép cổng cụ thể cho loại giao thức: tcp

3) Thêm lệnh sau để thêm cấu hình mạng cho cổng của bạn: Netsh http thêm urlacl url = http: // *: 8888 / user = mọi người


Vì bạn đã đến câu hỏi này 6 năm sau khi được hỏi và đã có 12 câu trả lời khác, tốt nhất là bạn nên chỉnh sửa câu trả lời của mình để giải thích cách câu trả lời của bạn hoạt động tốt hơn 12 câu hỏi khác (hoặc ít nhất là cách nó trả lời khác).
Khỉ Heretic

0

Một cách khác để truy cập các yêu cầu bên ngoài là sử dụng IIS thay vì IIS Express. Trong studio hình ảnh của tôi, tôi chỉ có thể chuyển đổi dễ dàng.

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


Tôi đang sử dụng VS2019.
PJ3 ngày

-1

[hộp thoại thuộc tính dự án]

Để phát triển bằng VisualStudio 2017 và dự án API NetCore:

1) Trong Cmd-Box: ipconfig / all để xác định địa chỉ IP

2a) Nhập địa chỉ IP đã truy xuất trong Thuộc tính dự án-> Tab gỡ lỗi

2b) Chọn Cổng và gắn địa chỉ đó vào địa chỉ IP từ bước 2a.

3) Thêm quy tắc cho phép trong tường lửa để cho phép lưu lượng TCP đến trên Cổng đã chọn (tường lửa của tôi được kích hoạt bằng hộp thoại: "Chặn hoặc thêm quy tắc vào tường lửa"). Thêm ý chí trong trường hợp đó làm thủ thuật.

Nhược điểm của giải pháp trên:

1) Nếu bạn sử dụng địa chỉ IP động, bạn cần làm lại các bước trên trong trường hợp địa chỉ IP khác đã được chỉ định.

2) Máy chủ của bạn hiện có một Cổng mở mà bạn có thể quên, nhưng cổng mở này vẫn là một lời mời cho những vị khách không mời.

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.