Anzeigen meiner von IIS gehosteten Site auf anderen Computern in meinem Netzwerk

101

Zu Hause habe ich ein einfaches Netzwerk-Setup mit 2 Maschinen.

Auf einem Computer habe ich eine Site, die mit IIS7 gehostet wird. Anstelle der Standardadresse habe localhost/index.htmich einen Eintrag in die HOSTSDatei eingefügt, der auf die lokale IP (127.0.0.1) dieser Domäne verweist www.mysite.dev.

Ich kann www.mysite.devproblemlos auf die Website zugreifen .

Ich möchte diese Site von meinem anderen Computer im Netzwerk aus anzeigen können.

Anfangs habe ich angenommen, dass dies mit einer solchen URL möglich ist MACHINE-NAME/www.mysite.dev, aber die Verbindung läuft immer ab. Aber ich kann MACHINE-NAMEohne Probleme pingen .

Zu Testzwecken habe ich die Windows-Firewall auf beiden Computern deaktiviert, aber zu keiner Freude.

Wie bei einem typischen Webentwickler sind meine Hardware- / Netzwerkfähigkeiten ziemlich schlecht.

Kann jemand sehen, wo ich falsch liege?

Truegilly
quelle
Haben Sie versucht, nur eine Verbindung zu MACHINE-NAME herzustellen ?
Lazarus

Antworten:

155

Wie bereits erwähnt, muss Ihre Firewall so konfiguriert werden, dass eingehende Anrufe über TCP-Port 80 angenommen werden .

in Win 7+ (einfache Art der Zauberei)

  1. Wechseln Sie mit erweiterter Sicherheit zur Windows-Firewall
  2. Eingehende Regeln -> Aktion -> Neue Regel
  3. Wählen Sie das Optionsfeld Vordefiniert und dann das letzte Element - World Wide Web Services (HTTP).
  4. Klicken Sie auf Weiter und lassen Sie die nächsten Schritte unverändert ( Verbindung zulassen ).

  • Da ausgehender Datenverkehr (vom Server zur Außenwelt) standardmäßig zulässig ist, bedeutet dies beispielsweise http-Antworten, die der Webserver an externe Benutzer und Anforderungen zurücksendet

  • Aber eingehender Verkehr (aus Außenwelt auf den Server) blockiert standardmäßig wie der Benutzer Web - Anfragen mit Ursprung aus ihrem Browser , der nicht auf den Webserver standardmäßig erreichen kann , und Sie müssen es öffnen.

Auf dieser Seite können Sie sich auch eingehende und ausgehende Regeln genauer ansehen

Iman
quelle
Wenn es immer noch nicht funktioniert, können Sie die Firewall selbst deaktivieren, zumindest für die Entwicklungsumgebung.
USER_NAME
@ Contristo, meine Gefühle genau :)
Bryan Rayner
1
@hitesh, Sie müssen nur Port 80 über Ihre aktivierte Firewall öffnen. Wenn Sie nicht einmal die Berechtigung zum Hinzufügen von Ports haben, sollten Sie normalerweise das entsprechende Support-Team bitten, diesen Port für diesen Server für Sie zu öffnen
Iman
1
@Hitesh: Sie können Ihre Site auf einem anderen Port als 80 hosten und nur diesen Port für Sie zulassen. Siehe meine Antwort unten, wie es geht.
Syed Ali Taqi
1
Schneller Zugriff auf die Windows-Firewall mit erweiterter Sicherheit: Win + R, geben Sie ein mmc.exe wf.msc.
facepalm42
35

Wenn Sie eine Website an einem bestimmten Port in IIS wie 4321 hosten, müssen Sie diesen Port auch über die Windows-Firewall zulassen. Hier sind die Schritte, die ich zusammen mit der Antwort des Imanabidi befolgt habe , damit es für mich funktioniert:

  1. Windows-Firewall> Erweiterte Einstellungen
  2. Eingehende Regeln> Neue Regel
  3. Wählen Sie Port> Weiter
  4. Bestimmte lokale Ports> Fügen Sie den Port hinzu, den Sie zulassen möchten
  5. Alle Verbindungen zulassen
  6. Geben Sie einen Namen und eine Beschreibung ein, damit Sie sich später daran erinnern können
  7. Getan
Syed Ali Taqi
quelle
10

Versuchen Sie zunächst, eine Verbindung zur LAN-IP Ihres Servers herzustellen. Wenn IIS nur mit einer Website eingerichtet ist, wird Ihre Website wahrscheinlich angezeigt.

Wenn Sie über den Namen darauf zugreifen möchten, müssen Sie einen Eintrag in die HOSTS-Datei jedes Client-PCs einfügen, mit dem Sie die Site anzeigen möchten (nicht auf 127.0.0.1, sondern auf die lokale IP-Adresse Ihres Servers).

Außerdem muss Ihre Firewall so konfiguriert sein, dass eingehende Anrufe an Port 80 angenommen werden.

Dies ist normalerweise der Punkt, an dem es sinnvoller ist, einen DNS-Dienst einzurichten, bei dem Sie Namen wie "mysite.dev" zentral registrieren können, ohne sich mit Hosts-Dateien beschäftigen zu müssen. Aber das ist eine andere Geschichte und gehört zu superuser.com oder serverfault.com.

Pekka
quelle
1
Die Firewall ist hier der wichtigste Teil.
Pierre
6

Öffnen Sie die Firewall-Einstellungen. Suchen Sie dann nach etwas wie - Programm oder Funktion durch Firewall zulassen. Wenn in der Liste World Wide Web Services (HTTP) deaktiviert ist, überprüfen Sie diese und starten Sie das System neu.

Unsere Maschine ist bereit, eingehende Anfragen anzunehmen.

Harika Kakkireni
quelle
3

Sehr späte Antwort, aber ich werde einen Punkt hervorheben, da ich mich vor Jahren damit befassen musste, meine IIS-Site netzwerkübergreifend einzurichten

  1. Beide Computer sollten mit demselben Netzwerk verbunden sein (dasselbe drahtlose Netzwerk ist in Ordnung).
  2. Greifen Sie über IP 168.192.x.xoder über auf Ihren Remote-Computer zu http://his-pc-name(vergessen Sie nicht den http-Teil).
  3. Dadurch wird die Standard-IIS-Seite auf dem Remotecomputer (dieselbe, die über localhost bereitgestellt wird) bedient. Wenn Sie eine andere Site bedienen möchten, [müssen Sie diese Standardeinstellung festlegen] zuerst 1 .

Stellen Sie sicher, dass Ihr IIS auf dem Remotecomputer ordnungsgemäß funktioniert, indem Sie überprüfen, localhostwelcher Standort die Standardwebsite bedienen soll. Stellen Sie außerdem sicher, dass Ihre Firewall so konfiguriert ist, dass eine Verbindung über Port 80 möglich ist, oder deaktivieren Sie die Firewall vorerst zu Testzwecken.

Hammad Khan
quelle
Die Verwendung der IP anstelle meines Workstation-Namens hat funktioniert. Prost!
Hatsrumandcode
3

Vergessen Sie nicht, neben der Änderung Ihrer Firewall auch die Portbindung hinzuzufügen!

Öffnen $(SolutionDir)\.vs\config\applicationHost.configund finden Sie verbindliche Definitionen, sollte so etwas sein

<sites>
    <site name="Samples.Html5.Web" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Git\Samples.Html5.Web" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:63000:localhost" />
        </bindings>
    </site>
    ...
</sites>

Fügen Sie einfach zusätzliche Zeilen hinzu, um die IP-Adresse Ihres Computers und den angegebenen Port wiederzugeben

<bindings>
    <binding protocol="http" bindingInformation="*:63000:localhost" />
    <binding protocol="http" bindingInformation="*:63000:10.0.0.201" />
</bindings>

Quelle: https://blog.falafel.com/expose-iis-express-site-local-network/

Korayem
quelle
2
Port Binding war ein wichtiger Schritt für mich! Ich habe IIS Express verwendet, das standardmäßig keinen Zugriff über die IP-Adresse zulässt (nur localhost). Ohne diesen Schritt würden die höher bewerteten Antworten für mich nicht funktionieren!
JonoB
2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

Es hat bei mir funktioniert

Santhosh Legent
quelle
2

Es kann spät sein, aber für jede andere Person, die in Zukunft ein solches Problem bekommt, für alle Verbindungen, die Sie zum Server herstellen möchten (in diesem Fall den Computer, auf dem die Webanwendung gehostet wird, unabhängig davon, ob es sich um iis oder xampp handelt) müssen Verbindung oder Datenverkehr über den spezifischen Port zulassen, der in der Firewall verwendet wird

1. Go to Windows Firewall -> Advanced settings
2. Click Inbound Rules -> Then New Rule
3. Select Port -> Next
4. Specific local ports -> Add the Port you want to allow
5. Allow All Connections
6. Enter a name and a description for to help you remember later on

und du fertig

Antoh
quelle
1

Nach der Installation von Antivirus trat dieses Problem auf und ich bemerkte, dass meine Firewall automatisch aktiviert wurde. Jetzt habe ich die Firewall einfach ausgeschaltet und mein Problem behoben. Hoffe es wird jemandem helfen :)

Bhavin Chauhan
quelle
0

127.0.0.1 zeigt immer auf localhost. In Ihrem Heimnetzwerk sollte Ihnen eine IP-Adresse von Ihrem Internet-Router zugewiesen sein (dsl / cablemodem / was auch immer). Sie müssen Ihre Website an diese Adresse binden. Sie sollten dann in der Lage sein, den Computernamen zu verwenden, um zur Website zu gelangen. Ich würde jedoch empfehlen, die Hosts-Datei des betreffenden Client-Computers tatsächlich zu bearbeiten, um einen bestimmten Namen auf diesen Computer zu verweisen. Die Hosts-Datei befindet sich unter c: \ windows \ system32 \ drivers \ etc \ hosts (Notepad verwenden). Der Eintrag sieht folgendermaßen aus:

192.168.1.1     mycomputername
Joel Etherton
quelle
@ JenishZinzuvadiya: Was? Ihr Kommentar macht keinen Sinn.
Joel Etherton
-1

Sie müssen die folgenden Schritte ausführen.

Gehen Sie zu IIS ->
Sites -> Klicken
Sie auf Ihre Website ->
In Aktion. Klicken Sie auf Berechtigungen bearbeiten ->
Sicherheit ->
Klicken Sie auf HINZUFÜGEN ->
Erweitert ->
Jetzt suchen -> Alle Benutzer hinzufügen
->
und erteilen Sie alle Berechtigungen an andere Benutzer ->
klicken Sie auf OK.

Wenn Sie die oben genannten Schritte ordnungsgemäß ausführen, können Sie über Ihre Domain auf Ihre Website zugreifen.
Vorschlag - Fügen Sie Ihrer Site keinen Hostnamen hinzu, da dies irgendwann zu Problemen führen kann. Hosten Sie Ihre Website daher unter Verwendung der IP-Adresse Ihres Computers.

Rakesh Surve
quelle