2013-04-25 11 views
11

To mój web.config, który ma kilka znaczników do blokowania IPaddressInternal Server Error z web.config ipSecurity

<configuration> 
<connectionStrings> 
    ... 
</connectionStrings> 
<appSettings> 
    .... 
</appSettings> 
<runtime> 
    .... 
</runtime> 
    <system.webServer> 
    <security> 
     <ipSecurity allowUnlisted="false"> 
      <clear/> 
      <add ipAddress="127.0.0.1" allowed="true"/> 
      <add ipAddress="83.116.19.53" allowed="true"/> 
     </ipSecurity> 
    </security> 
</system.webServer> 
</configuration> 

Moją intencją jest, aby zablokować wszelkie inne IP oprócz wyżej wymienionych. Powyższy adres jest jedynym adresem IP, pod którym strona powinna być dostępna. Ale z tagiem "ipSecurity" zawsze otrzymuję 500 - Wewnętrzny błąd serwera i strona działa bez niego.

Upewniłem się, że "Ograniczenia IP i domen" są zainstalowane na serwerze. Proszę dać mi znać, jeśli czegoś brakuje. Dziękuję.

+0

również dodać ':: 1' IPv6 localhost, sprawdź logi dostępowe do serwisu, aby zobaczyć, jaki adres IP jest blokowany, jeśli nadal nie działa po że. Jeśli jesteś na zdalnej lokalizacji, zweryfikuj swój publiczny adres IP przez coś podobnego do ipchicken.com. –

+0

Dzięki temu wypróbowałem IPv6 localhost, ale to nie pomogło. Począwszy od IIS, kiedy próbuję kliknąć "Ograniczenia IP i domeny", pojawia się błąd "domyślnie blokowanie (overridemodedefault = deny)". – Sruthi

Odpowiedz

5

Edytujesz konfigurację ręcznie lub za pomocą Menedżera usług IIS?

Zobacz ten post o tym komunikatem o błędzie, ponieważ nie może mieć, że cecha delegacja włączona

http://forums.asp.net/t/1220987.aspx

+0

Łącze jest niedostępne ... :("Witryna, którą próbujesz otworzyć, jest niedostępna z powodu konserwacji ..." – Shubh

23

Dla innych, które działają w tej kwestii. Przyczyną problemu jest to, że funkcja Delegacja nie zezwala na zarządzanie tą funkcją przez web.config.

Fix:

Upewnij się, że funkcja jest włączona do zarządzania web.config

  • W IIS 7, kliknij na serwer główny
  • dwukrotnie kliknij Delegacja funkcji (zarządzanych)
  • Przewiń w dół do adresu IPv4 i ograniczeń domeny
    • Zmień delegację na Odczyt/zapis (w moim przypadku był to tylko do odczytu, który była kwestia)

Nadzieja pomaga to ktoś inny.

+2

Rozwiązałam mój problem, ale nie widziałem "Ograniczenia adresu IPv4 i ograniczeń domeny" do czasu zainstalowania Win7 -> Programy i Funkcje -> Usługi World Wide Web -> Funkcje programowania aplikacji -> ASP oraz usługi World Wide Web -> Funkcje programowania aplikacji -> Bezpieczeństwo -> Bezpieczeństwo IP – Riga

+0

Dzięki! To dokładnie rozwiązuje mój problem po rozwiązaniu problemów w applicationHost.config – juvchan

+0

Absolutna legenda Jestem pewien, że odpowiedź Brocka jest również poprawna, ale jest to o wiele bardziej zwięzłe: –

1

Nie zapomnij o delegowaniu niestandardowych witryn. Dzięki temu możesz zezwolić na delegowanie tylko do stron, które zamierzasz.

8

Otwórz applicationHost.config plik (znajduje się na % windir% \ system32 \ inetsrv \ config \ ApplicationHost.config) i edytować sekcję ipSecurity.

Zmiana ta linia:

<section name="ipSecurity" overrideModeDefault="Deny" /> 

Do:

<section name="ipSecurity" overrideModeDefault="Allow" /> 
+0

Jeśli pracujesz na systemie 64-bitowym. edytuj i zapisz go programem 64bit! (jak notatnik) –

0

Mam nadzieję, że to pomoże komuś ...

Używam IIS Express na Windows 7 lokalnie i zrobił następujące - Panel sterowania> Programy> Programy i funkcje> Włącz funkcje systemu Windows lub wyłączyć

W funkcje systemu Windows dialogowe zapewnienia IP Bezpieczeństwo jest zaznaczona opcja:

enter image description here

miałem też do otwarcia mojego applicationHost.config (pod % USERPROFILE% \ Documents \ IISExpress \ config plik) i zmienić następujące:

<section name="ipSecurity" overrideModeDefault="Deny" /> 

Aby

<section name="ipSecurity" overrideModeDefault="Allow" /> 
18

W systemie Windows 10 i Visual Studio 2015 Zauważ, że plik ApplicationHost.config został przeniesiony do folderu .vs \ config w hierarchii folderów projektu. Trzeba będzie edycji specyficzna wersja projektu z pliku ApplicationHost.config znalezionego tam z ...

<section name="ipSecurity" overrideModeDefault="Allow" /> 

Jeśli tylko edytować ApplicationHost.config znajdujący się w dokumentach \ IISExpress Folder ten nie ma wpływu na istniejąca aplikacja (aplikacja MVC5 w moim przypadku).

4

Spróbuj poza system.webServer tag

<location path="Default WebSite"> 
    <system.webServer> 
     <security> 
      <ipSecurity allowUnlisted="false"> 
       <clear/>     
       <add ipAddress="127.0.0.1" allowed="true"/> 
      <add ipAddress="83.116.19.53" allowed="true"/> 
      </ipSecurity> 
     </security> 
    </system.webServer> 
</location> 
+1

właśnie uratowałeś mi życie –

+1

To zadziałało dla ciebie Wszystko co najważniejsze! –

+1

Czy to ustawienie nie umożliwia połączenia ze wszystkich źródeł, ponieważ opcja allowUnlisted ma wartość true? https://docs.microsoft.com/en-us/configuration/system.webserver/security/ipsecurity/ – Mino