/ / Maverick MVC na IIS7.5 - Mapowanie handler'a - asp.net-mvc, iis

Maverick MVC na IIS7.5 - Mapowanie handler - asp.net-mvc, iis

Mamy starszą (bardzo starszą!) Aplikację, która korzysta z Maverick.net: http://sourceforge.net/projects/mavnet/

Działa to dobrze na IIS6, jednak jesteśmy terazmigracja do wersji iis7.5, która powinna być dość łatwa, ale nie działa dla nas. Skonfigurowaliśmy pulę aplikacji, aby używać platformy .net v2.0 w trybie klasycznym do emulacji iis6.

W web.config mamy następujące elementy

        <httpHandlers>
<add verb="*" path="*.m" type="Maverick.Dispatcher, Maverick" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers accessPolicy="Read, Execute, Script">
<add name="Maverick" path="*.m" verb="*" modules="IsapiModule" scriptProcessor="C:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll" resourceType="File" requireAccess="Execute" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
</system.webServer>

I w IIS7.5 dla tej aplikacji mam skonfigurowane następujące mapowanie skryptu obsługi

  • Ścieżka żądania: * .m

  • Plik wykonywalny: C: WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll // jako za dokumentację indywidualną

  • Imię i nazwisko: Maverick

Zażądaj ograniczeń

  • Wywołaj procedurę obsługi, jeśli żądanie jest mapowane na: Plik lub folder

  • Czasowniki: Wszystkie czasowniki

  • Dostęp: Wykonaj

Plik maverick.config ma następujące brzmienie:

<?xml version="1.0"?><maverick version="2.0" default-view-type="document" default-transform-type="document">
<commands>

<command name="welcome"> <!--Entry page-->
<controller class="PAPI.Controllers.StoreDetails, PAPI"/>
<view name="login" path="login.aspx" type="redirect"/>
<view name="help" path="help.aspx" type="redirect"/>
<view name="error" path="error.aspx" type="redirect"/>
</command>

<command name="setPrincipal"> <!--Sets the security-->
<controller class="PAPI.Controllers.SetPrincipal, PAPI"/>
<view name="login" path="login.aspx" type="redirect"/>
<view name="success" path="instructions.m" type="redirect"/>
<view name="error" path="error.aspx" type="redirect"/>
</command>

<command name="instructions"> <!--Controller for instruction pages-->
<controller class="PAPI.Controllers.GetNextPage, PAPI"/>
<view name="login" path="login.aspx?" type="redirect"/>
<view name="dataProtection" path="dataprotection.aspx" type="redirect"/>
<view name="instructions1" path="instructions1.aspx?" type="redirect"/>
<view name="example" path="example.aspx?" type="redirect"/>
<view name="instructions2" path="instructions2.aspx?" type="redirect"/>
<view name="questionnaire" path="questionnaire.aspx?" type="redirect"/>
<view name="finished" path="finished.aspx?" type="redirect"/>
<view name="error" path="error.aspx" type="redirect"/>
</command>

</commands>

Który jest taki sam jak IIS6 afaik. Jednak nie działa on w wersji iis7.5. Gdy strona jest żądana, np. http://localhost/app/login.aspx, mapuje do http://localhost/app/welcome.m która następnie zwraca 404. Pliki dziennika pokazują przekierowania 302 do welcome.m, a następnie IIS doens nie wiedzą co z nim zrobić, więc konfiguracja musi być niepoprawna.

Próbowaliśmy użyć mapowania modułów zamiast mapowania skryptów, ale występuje ten sam problem.

Czy ktokolwiek ma jakieś pomysły co do tego, czego może mi brakować?

Odpowiedzi:

0 dla odpowiedzi № 1

Więc mój kolega rozwiązał to, dodając 2 modułymapowania skonfigurowane do używania IsapiModule zamiast mapowania skryptów. Jeden na 32 bity wskazujący na C: WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll i jeden na 64-bitowy wskazujący na C: WindowsMicrosoft.NETFramework64v2.0.50727aspnet_isapi.dll.

Na wszelki wypadek, gdyby ktoś w to wpadł.