2013-07-16 15 views
5

Mam witrynę ASP.NET MVC korzystającą z FluentSecurity. Jako witryna internetowa Azure działa dobrze. Muszę uczynić go WebRole. Dodałem projekt WebRole, ale WebRole kończy się niepowodzeniem podczas uruchamiania z ogólną "Nie można wyświetlić strony, ponieważ wystąpił wewnętrzny błąd serwera."FluentSecurity powoduje, że Azure WebRole zawiedzie

Mam DenyAnonymousAccessPolicyViolationHandler i RequireRolePolicyViolationHandler wdrażanie i całą konfigurację FluentSecurity zgodnie z http://blog.mariusschulz.com/setting-up-fluentsecurity-to-use-ninject-for-dependency-resolution.

Odkryłem, że gdy usuwam obie klasy implementujące IPolicyViolationHandler, wtedy WebRole zaczyna się dobrze. Stworzyłem przykładowy projekt demonstrujący ten problem, można go znaleźć pod numerem https://dl.dropboxusercontent.com/u/73642/MvcApplication1.zip.

W jaki sposób mogę sprawić, aby FluentSecurity działało z usługą Azure WebRole, w tym moimi klasami zasad?

+1

Czy kiedykolwiek znaleźć rozwiązanie tego? Mam dokładnie ten sam problem z moim DenyAnonymousAccessPolicyViolationHandler. – Faraday

+0

Ja nie. Zgłosiłem błąd na Githubie i nie otrzymałem odpowiedzi –

Odpowiedz

0

Mieliśmy ten sam problem; działa w witrynie internetowej, ale nie w roli internetowej.

To dlatego, że Fluent Security odwołuje się do MVC3, a nie do MVC4. Komentarze do tego błędu na Githubie są bardziej szczegółowe: https://github.com/kristofferahl/FluentSecurity/pull/39.

można:

1) Weź lokalną kopię FluentSecurity.csproj i uaktualnić to System.Web.MVC odniesienie do MVC 4, a następnie umieścić go w roztworze (to jest to, co zrobiliśmy).

2) Lub, jak na powyższym linku bug GitHub „... to naprawić za pomocą montaż przekierować w web.config” jak to

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
    </dependentAssembly> 
    <dependentAssembly> 
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
</runtime> 
Powiązane problemy