2013-07-16 2 views
5

У меня есть веб-сайт ASP.NET MVC с использованием FluentSecurity. Как Azure Website он работает отлично. Мне нужно сделать это WebRole. Я добавил проект WebRole, но при запуске WebRole не работает с общим «Страница не может быть отображена, потому что произошла ошибка внутреннего сервера».FluentSecurity делает Azure WebRole неудачным

У меня есть DenyAnonymousAccessPolicyViolationHandler и RequireRolePolicyViolationHandler реализации IPolicyViolationHandler и всю установку FluentSecurity согласно http://blog.mariusschulz.com/setting-up-fluentsecurity-to-use-ninject-for-dependency-resolution.

Я обнаружил, что когда я удаляю оба класса, реализующих IPolicyViolationHandler, тогда WebRole начинается просто отлично. Я создал образец проекта, демонстрирующий эту проблему, вы можете найти его на https://dl.dropboxusercontent.com/u/73642/MvcApplication1.zip.

Как я могу получить работу FluentSecurity с Azure WebRole, включая мои классы политики?

+1

ли вы когда-нибудь найти решение этой проблемы? У меня такая же проблема с моим DenyAnonymousAccessPolicyViolationHandler. – Faraday

+0

Я этого не делал. Я сообщил об ошибке в Github, и я не получил ответа –

ответ

0

У нас была та же проблема; работая на Веб-сайте, но не в веб-роли.

Это потому, что Fluent Security ссылается на MVC3, а не MVC4. Комментарии к этой ошибке в Github подробно рассмотрены https://github.com/kristofferahl/FluentSecurity/pull/39.

Вы можете:

1) Возьмите локальную копию FluentSecurity.csproj и обновить его System.Web.MVC ссылка на MVC 4, а затем включите его в растворе (это то, что мы сделали).

2) Или, как за баг ссылки Github выше «... это исправить с помощью сборки перенаправлять в вашем web.config», как этот

<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> 
Смежные вопросы