2014-02-07 102 views
0

我一直在這個小時,仍然沒有弄清楚我做錯了什麼。我創建了一個MVC4 Intranet站點,現在我準備將它部署到我們的Web服務器上的IIS。我設置了一個名爲Portal的站點,並從Visual Studio中使用文件系統方法執行了1次單擊發布。這些文件成功複製到我的網站。在IIS中,我將身份驗證更改爲Windows並禁用了匿名身份驗證。我甚至進入了我的應用程序池,並更改了Load User Profile = true(不確定是否需要這樣做)。然後,我在*:88上點擊瀏覽Portal,並且我收到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

App Pool配置的用戶是什麼?該用戶是否可以訪問代碼上傳到的本地文件路徑? – 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瀏覽器。在「高級」選項卡的「Internet選項」中,在瀏覽下取消選擇「顯示友好的HTTP錯誤消息」。然後再試一次。希望你能看到實際的問題是作爲一個HTTP狀態碼。它可以找不到服務器,你得到404(頁面未找到),401未經授權,500等。

有了這些信息,它將更容易診斷。

+0

我必須有什麼問題,我說過,但我收到了關於不顯示網頁的相同消息。當我點擊IIS上的瀏覽器時,它試圖把我帶到這個網站http:// portal:88 /)(有了80我只是得到了「http:// portal /」,並且這不起作用,所以它不能識別某些東西在我的配置文件,我猜想 –

+0

這可能是一個DNS問題。「門戶」在服務器上解決任何事情?您可能必須編輯該框上的主機 – CtrlDot

+0

它不應該,我將其更改爲RequestPortal並收到相同的錯誤。 –