2014-02-07 5 views
0

Я был в этом часами и до сих пор не понял, что я делаю неправильно. Я создал сайт интрасети MVC4, и теперь я готов развернуть его в IIS на нашем веб-сервере. Я настраиваю сайт под названием Portal и Visual Studio. Я выполнил публикацию 1 клика с использованием метода файловой системы. Файлы успешно скопированы на мой сайт. В IIS я изменил аутентификацию на Windows и отключил анонимную аутентификацию. Я даже включил свой пул приложений и изменил Load User Profile = true (не уверен, что мне нужно это сделать). Затем я попал в Портал поиска на *: 88, и я получаю, что Internet Explorer не может отображать веб-страницу. Я проверил свои модули и вижу, что UrlRoutingModule-4.0 управляется и унаследован. Я должен упускать из виду очевидную настройку, так как это мой первый веб-сайт. Любая помощь приветствуется. Спасибо.MVC4 Интранет-сайт IIS 7, не отображает веб-страницу

physical path = c:\inetpub\wwwroot\Portal 
    Site name and Application Pool = Portal (.Net 4 and Pipeline mode: integrated) 
    type = http 
    Host name = Portal 
    Port = 88 (80 was already used and did not work) 
    IP Address = * 

UPDATE: WebConfig (у меня есть собственные роли) и Routconfig

<system.web> 

    <roleManager enabled="true" defaultProvider="DbRoleProvider"> 
     <providers> 
     <clear /> 
     <add name="DbRoleProvider" 
      applicationName="Portal" 
      type="Portal.WebUI.Infrastructure.DbRoleProvider" 
      connectionStringName="PortalEntities" /> 
     </providers> 
    </roleManager> 

    <compilation debug="true" targetFramework="4.0" /> 
    <authentication mode="Windows" /> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers></system.webServer> 

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "RequestInfo", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 
+0

Какой пользователь пул приложений настроен? Доступен ли этот пользователь к локальному пути к файлу, куда был загружен код? – CtrlDot

+0

У меня есть сквозная настройка аутентификации, и пул настроен как ApplicationPoolIdentity –

+0

Доступ ли у пользователя домена? Можете ли вы показать свои маршруты config/web.config (соответствующий раздел аутентификации) и http-вывод, когда вы запрашиваете свой сайт (т. Е. Существуют ли какие-либо переадресации в фоновом режиме?). – CtrlDot

ответ

0

поэтому после большего количества экспериментов и исследований я нашел свою проблему, и это было результатом того, что я никогда не делал этого раньше.

  1. Моя первая проблема: я включил имя хоста, когда настраивал приложение. Поэтому, когда я попытался перейти на www.portal.com:85 на сервер, он не понял этого адреса и не мог подключиться ни к чему. Однако, когда я удалил имя хоста и набрал http://localhost:85, он сработал. Мне нужно будет с моей командой по инфраструктуре установить это.

  2. Моей второй проблемой была безопасность нашего SQL Server. Я не знал, что мне нужно настроить логин для имени пула приложений. Я использовал второй ответ из этого сообщения Login failed for user 'IIS APPPOOL\ASP.NET v4.0', потому что я не хотел менять личность на LocalSystem. После того, как я установил логин под защитой SQL Server, сайт работал. Это правильный способ сделать это?

0

Было бы полезно, если вы отключили сообщения об ошибках в IE. В «Свойства обозревателя» на вкладке «Дополнительно» в разделе «Просмотр» выберите «Показать сообщения об ошибках HTTP». Затем повторите попытку. Будем надеяться, что вы увидите, какова фактическая проблема, как код состояния HTTP. Не может ли он найти сервер, вы получаете 404 (страница не найдена), 401 несанкционированных, 500 и т. Д.

С этой информацией будет намного легче диагностировать.

+0

У меня должно быть что-то не так, я сказал, но я получаю то же сообщение о том, что не показываю веб-страницу. Когда я нажимаю на просмотр в IIS, он пытался доставить меня на этот сайт http: // portal: 88 /) (с 80 я просто получаю «http: // portal /», и это тоже не работает, поэтому он не распознает что-то в моих конфигурационных файлах я бы предположил, –

+0

Это может быть проблема DNS. Решает ли «портал» на сервере что-либо?Возможно, вам придется редактировать хосты в этом поле – CtrlDot

+0

, но не следует, я изменил его на RequestPortal и получил ту же ошибку. –