2017-01-18 11 views
0

Я пытаюсь загрузить одно из моих приложений MVC4, но с трудом. Это находится в локальной среде разработчиков под управлением Windows 7 Pro SP1, IIS 7.5, VS2015, .NET 4.6.1 в качестве целевой версии .NET и MVC4. В этом приложении я получаю сообщение об ошибке HTTP 403.14 - Запрещено. У меня есть другие приложения MVC, работающие в одном AppPool, и они загружаются правильно. Без необходимости включать просмотр каталогов в IIS, чего я не хочу делать. В разделе system.webServer моего web.config у меня естьIIS 7.5, Windows 7 Professional и MVC4

<remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="OPTIONSVerbHandler" /> <remove name="TRACEVerbHandler" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

, но даже когда я удаляю выше блок кода я все еще получаю ошибку 403.14. Я попытался запустить:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

, но это не исправить вещи. Я также попробовал исправление, которое у Microsoft для ExtensionlessUrlHandler, но это тоже не сработало. Я попытался установить runAllManagedModulesForAllRequests="true", который тоже не работал, и я не хочу включать его в производство. Я также попытался добавить UrlRoutingModule-4.0, как показано ниже, но это также не помогло решить проблему.

<system.webServer> <modules> <remove name="UrlRoutingModule-4.0" /> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> </modules> </system.webServer>

Мои RouteConfig ничего с идентификатором {} не изменится.

Я удостоверился, что установлен .NET 4.6.1, а также .NET Extensibility. Я сравнил конфигурацию в IIS между рабочим приложением и нерабочим приложением и не видел никаких вопиющих различий. Я также сравнил разрешения папки.

Кто-нибудь видел такую ​​проблему? Я что-то упускаю?

ответ

0

По дороге домой я начал думать обо всех вещах, которые я сравнивал, и понял, что одна вещь, которую я не сравнивал, это фактические каталоги и файлы в корневом каталоге веб-приложения. При сравнении я столкнулся с файлом с именем PrecompiledApp.config в корневом каталоге приложения, которое я не смог загрузить, который не был в корневом каталоге других приложений, которые работают. Как только я удалил файл, приложение загрузилось.

0

Надеюсь, что эта помощь.

1.Check Directory Browsing of your website if it is enable or not. 
    Just Click your deployed website and double click Directory browsing tab. 
2.Check project framework in application pool, it must be the same. 
3. Check also user permission of your website. 

Index Контроллер:

public ActionResult Index() 
{  
    return View("~/Views/Home/About.cshtml"); 
} 

или

public ActionResult Index() 
{ 
    return View(); 
} 

Good Luck!

+0

Я сделал все три ... 1. Я включил просмотр каталогов, но он не загружает приложение, которое просто отображает дерево каталогов. 2. Соотношение оснований. 3. Я проверил разрешения, и они совпадают. – innov83r

+0

Вы использовали порт как localhost: 2345? у вас есть страница по умолчанию? Если нет, вам нужно иметь стартовую страницу. –

+0

Вы также должны зарегистрировать vb.net в IIS, например https://msdn.microsoft.com/en-us/library/k6h9cz8h.aspx –