Na ASP.NET wykryto ustawienie, które nie ma zastosowania w trybie zintegrowanego zarządzanego potoku

Zainstalowałem DotNetOpenAuth SDK-3.4.5.10201.vsix i nie mogę go uruchomić. Działa lokalnie (gdy uruchamiam jako localhost), ale gdy próbuję opublikować, nie działa.

Otrzymywany komunikat błędu IIS to

Podsumowanie Błędów
Błąd HTTP 500.22-Wewnętrzny błąd serwera
Na ASP.NET wykryto ustawienie, które nie ma zastosowania w trybie zintegrowanego zarządzanego potoku.

I

Module       ConfigurationValidationModule  
Notification BeginRequest  
Handler      StaticFile  
Error Code   0x80070032  

Następnie są pewne sugestie, jak aby rozwiązać problem:

Rzeczy, które możesz wypróbować:

  • Migracja konfiguracji do system.webServer/modules sekcja. Ty można to zrobić ręcznie lub za pomocą AppCmd z wiersza poleceń - na przykład, %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/". Używanie AppCmd do migracji twojego aplikacja umożliwi jej pracę w Tryb zintegrowany i kontynuować pracę w trybie klasycznym i na poprzednich wersje IIS.

  • Jeśli masz pewność, że jest to OK ignoruj to błąd, można go wyłączyć przez ustawienie system.webServer/validation@validateIntegratedModeConfiguration za fałsz.

  • Alternatywnie Zmień aplikację do puli aplikacji w trybie klasycznym - na przykład, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool". Rób to tylko wtedy, gdy jesteś nie można przenieść aplikacji.
    (Ustaw "domyślną witrynę internetową" i "klasyczny. NET AppPool" do ścieżki aplikacji i nazwy puli aplikacji)

Ale problem polega na tym, że nie mam dostępu do serwera ISS, ponieważ nie jestem właściciel. Czy jest jakiś sposób, aby to rozwiązać?

Author: Ian Kemp, 2010-11-18

10 answers

Opcja 2 nd jest tą, którą chcesz.

W Twoim web.config Upewnij się, że te klucze istnieją:

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
</configuration>
 721
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-02 17:35:18

Dodanie <validation validateIntegratedModeConfiguration="false"/> rozwiązuje objaw, ale nie jest odpowiednie dla wszystkich okoliczności. Po obejrzeniu tej kwestii kilka razy, mam nadzieję pomóc innym nie tylko przezwyciężyć problem, ale go zrozumieć. (Co staje się coraz ważniejsze, gdy IIS 6 znika w mity i plotki.)

Background:

Ten problem i zamieszanie wokół niego zaczęło się od wprowadzenia ASP.NET 2.0 i IIS 7. IIS 6 miał i nadal ma tylko jeden tryb potoku i jest równoważny co IIS 7 + nazywa tryb "klasyczny". Drugi, nowszy i zalecany tryb rurociągu dla wszystkich aplikacji działających w IIS 7+ nazywa się trybem "zintegrowanym".

Więc, co za różnica? Zasadnicza różnica polega na tym, jak ASP.NET współdziała z IIS.

  • Tryb klasyczny jest ograniczony do ASP.NET rurociąg, który nie może wchodzić w interakcje z rurociągiem usług IIS. Zasadniczo pojawia się żądanie i jeśli IIS 6 / Classic został poinformowany, poprzez konfigurację serwera, że ASP.NET poradzi sobie z tym. następnie IIS przekazuje prośbę do ASP.NET i idzie dalej. Znaczenie tego można wyciągnąć na przykładzie. Gdybym miał autoryzować dostęp do statycznych plików graficznych, nie byłbym w stanie tego zrobić z ASP.NET moduł, ponieważ rurociąg IIS 6 sam obsłuży te żądania i ASP.NET nigdy nie zobaczy tych próśb, ponieważ nigdy nie zostały przekazane.* Z drugiej strony, autoryzowanie, które użytkownicy mogą uzyskać dostęp do .Strona ASPX taka jak prośba o Foo.aspx jest banalny nawet w IIS 6 / Classic bo IIS zawsze przekazuje te prośby do ASP.NET rurociąg. W trybie klasycznym ASP.NET nie wie, czego nie zostało powiedziane i jest wiele, że IIS 6 / Classic może tego nie mówić.

  • Tryb zintegrowany jest zalecany, ponieważ ASP.NET moduły obsługi i moduły mogą współdziałać bezpośrednio z rurociągiem IIS. Już rurociąg IIS po prostu nie przekazuje żądania do ASP.NET rurociągu, teraz pozwala ASP.NET kod do podłączenia bezpośrednio do rurociągu IIS i wszystkich / align = "left" / Oznacza to, że ASP.NET moduł może nie tylko obserwować żądania do statycznych plików graficznych, ale może przechwytywać te żądania i podejmować działania, odmawiając dostępu, rejestrując żądanie itp.

Przezwyciężenie błędu:

  1. Jeśli używasz starszej aplikacji, która została pierwotnie zbudowana dla IIS 6, być może przeniosłeś ją na nowy serwer, nie może być absolutnie nic złego w uruchamianiu puli aplikacji tej aplikacji w trybie klasycznym. Idź. nie musisz czuć się źle.
  2. Potem znowu może dajesz aplikacji face-lift lub było chugging wzdłuż tylko dobrze, dopóki nie zainstalowano biblioteki 3rd party przez NuGet, ręcznie, lub w inny sposób. W takim przypadku jest całkowicie możliwe, że httpHandlers lub httpModules zostały dodane do system.web. Wynikiem jest błąd, który widzisz, ponieważ validateIntegratedModeConfiguration defaults true. Teraz masz dwa wyjścia:

    1. Usuń httpHandlers i httpModules elementy z system.web. Istnieją kilka możliwych rezultatów z tego:
      • Wszystko działa dobrze, wspólny wynik;
      • Twoja aplikacja nadal skarży się, może być sieć.config w folderze nadrzędnym, z którego dziedziczysz, rozważ oczyszczenie tej sieci.config too;
      • masz dość usuwania httpHandlers i httpModules, które pakiety NuGet dodają do system.web, Hej, rób co musisz.
  3. Jeśli te opcje nie działają lub są bardziej kłopotliwe niż jest to warte, to jestem nie powiem ci, że nie możesz ustawić validateIntegratedModeConfiguration na false, ale przynajmniej wiesz, co robisz i dlaczego to ma znaczenie.

Dobry czyta:

*oczywiście są sposoby, aby dostać wszelkiego rodzaju dziwne rzeczy do ASP.NET rurociągu z IIS 6 / Classic poprzez inkantacje jak mapowanie wieloznaczne , jeśli lubisz takie rzeczy.

 97
Author: Jeremy Cook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-20 18:16:37

Jeśli nadal musisz używać modułu HTTP, musisz go skonfigurować (. NET 4.0 framework) w następujący sposób:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true">
       <add name="MyModule" type="[Namespace].[Class], [assembly]"/>
   </modules>
   <validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
 33
Author: Ashraf Sayied-Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-02 17:37:34

Napotkałem ten problem, ale miałem inną poprawkę. Wymagało to aktualizacji Control Panel>Administrative Tools>IIS Manager i przywrócenia zarządzanego potoku z Integrated do Classic.

 32
Author: Gaʀʀʏ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-17 19:52:41

Sprawdź, czy w Twoim uwierzytelnianiu usług IIS nie występuje konflikt. tj. użytkownik włącza uwierzytelnianie anonimowe i ASP.NET podszywanie się pod obu może również spowodować błąd.

 7
Author: Jim Yu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-23 21:41:22

W sieci.config upewnij się, że te klucze istnieją:

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
</configuration>

Jak również sprawdzić Asp.Net Impresonacja = Disable in iis site Authetication

 3
Author: Nil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-23 04:42:17

To mi się udało:

  1. Usuń pierwotnie utworzoną stronę.
  2. odtworzenie strony w IIS
  3. czysty roztwór
  4. Zbuduj rozwiązanie

Wygląda na to, że coś poszło nie tak, kiedy stworzyłem tę stronę. Nienawidzę rozwiązań, które są podobne do "Uruchom ponownie komputer, a następnie ponownie zainstaluj system windows", nie wiedząc, co spowodowało błąd. Ale to mi pomogło. Szybko i prosto. Mam nadzieję, że to pomoże komuś innemu.

 2
Author: Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-27 14:38:18

Napotkałem ten problem i zainspirowany odpowiedzią @ Jeremy Cook, ugryzłem kulę, aby dowiedzieć się, co do cholery spowodowało, że zintegrowany tryb IIS 7 nie lubi mojej sieci.config. Oto mój scenariusz:

  1. Web API (Wersja 4.0.030506.0 aka the old one)
  2. . NET 4.0
  3. attribute Routing 3.5.6 dla Web API [Spoiler alert: to był ten facet!]

Chciałem użyć trasowania atrybutów w projekcie, który (niestety) musiał używać. NET 4 i dlatego nie mógł używać Web API 2.2 (który potrzebuje. NET 4.5). Pakiet NuGet dodał tę sekcję w sekcji <system.web>:

<system.web>
<httpHandlers>
      <add verb="*" path="routes.axd" type="AttributeRouting.Web.Logging.LogRoutesHandler, AttributeRouting.Web" />
    </httpHandlers>
</system.web>

[mówię dobrze, ponieważ ta część jest wymagana w starszych wersjach IIS]

Usunięcie tej sekcji sprawiło, że przeszedłem HTTP 500.23!!

Podsumowanie: Popieram słowa Jeremy ' ego, że ważne jest, aby zrozumieć, dlaczego rzeczy nie działają, a nie tylko "maskowanie objawu". Nawet jeśli musisz zamaskować objaw, wiesz, co robisz (i dlaczego): -)

 1
Author: dotnetguy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-01 01:24:55

W moim przypadku brakowało mi dll w folderze bin, który został odwołany w web.plik konfiguracyjny. Sprawdź więc, czy używasz żadnych ustawień w sieci.config ale faktycznie nie mają dll.

Thanks

 0
Author: naveen rawat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-24 07:44:05

Metoda local to błąd

obraz

 -2
Author: hossein khazai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-26 08:31:56