Microsoft IIS

remote connections to development iis

Εξ ορισμού, ο IIS Express που ενεργοποιείται στο web debugging του visual studio δεν επιτρέπει απομακρυσμένες συνδέσεις. Αυτό είναι κάπως ενοχλητικό για όσους υλοποιούν συνδυαστικές λύσεις π.χ. Mobile Client στον IIS Αpplication Server. Παρουσιάζουμε workaround που αποτελείται από 3 βήματα και ενεργοποιεί τις απομακρυσμένες συνδέσεις στον development server.

Τα 3 βήματα του workaround για τους βιαστικούς:

  1. Εκκίνηση του Visual Studio σαν Administrator (δεξί κλικ στο εικονίδιο του studio & run as administrator).
  2. Προσθήκη binding με την IP σας στο applicationhost.config.
  3. Ανοίξτε την πόρτα στο firewall. Αν για παράδειγμα ακούει στην 9999 θα πρέπει να την προσθέσετε ένα incoming rule για την 9999.

Για τους λιγότερο βιαστικούς αναλύουμε μερικά σημεία.

Παράδειγμα Binding

Υποθέτουμε ότι η IP του development server είναι η 192.168.1.2 και ότι το web application ακούει στη θύρα 9999. Το applicationhost.config περιέχει τις παρακάτω πληροφορίες. Προσθέτετε το binding με τα bοld.

 <site name="web_app" id="10">
  <application path="/" applicationPool="Clr4IntegratedAppPool">
   <virtualDirectory path="/" physicalPath="C:\test" />
  </application>
  <bindings>
   <binding protocol="http" bindingInformation="*:9999:localhost" />
   <binding protocol="http" bindingInformation="*:9999:192.168.1.2" />
  </bindings>
 </site>

Σημειώνουμε ακόμα ότι αν θέλετε να επιτρέψετε όλες τις IP ο καθορισμός του binding information έχει ως εξής:

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

Εντοπισμός applicationhost.config

Ξεκινήστε το debugging ως συνήθως. Όταν ο IIS Express ενεργοποιηθεί, επιλέξτε το δεξί κλικ στο αντίστοιχο εικονίδιο του tray, στο context menu επιλέξτε “Show all applications”, θα εμφανιστούν οι τρέχουσες εφαρμογές που χοστάρει ο IIS. Στο κάτω μέρος του παραθύρου φαίνεται το hyperlink της θέσης του αρχείου του configuration του server. Επιλέξτε το και θα ανοίξει στον editor της επιλογής σας. Αφού ολοκληρώσετε την προσθήκη του binding θυμηθείτε να επανεκκινήσετε τον IIS Express ζητώντας νέο debugging session από το Visual Studio.

Προσοχή! Αν έχετε το Visual Studio 2015 θα βρείτε το applicationhost.config στην τοποθεσία:

$(solution_path)\.vs\config\

Αν έχετε 2 applicationhost.config, τροποποιήστε και τα 2. 

Firewall Rule (command prompt)

Ανοίξτε command prompt με elevated privileges και – για το παράδειγμά μας με θύρα 9999 – γράψτε:

netsh advfirewall firewall add rule name="Open Port 9999" dir=in action=allow protocol=TCP localport=9999


Comments

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *