MVC4 Intranet站点IIS 7,无法显示网页

时间:2014-02-07 21:29:19

标签: asp.net-mvc-4 iis deployment intranet

我已经在这里工作了几个小时,但仍然没有弄清楚我做错了什么。我创建了一个MVC4内部网站点,现在我准备将它部署到我们的Web服务器上的IIS中。我设置了一个名为Portal的站点,从Visual Studio我使用文件系统方法执行了1次单击发布。文件已成功复制到我的网站。在IIS中,我将身份验证更改为Windows并禁用了匿名身份验证。我甚至进入了我的应用程序池并更改了Load User Profile = true(不确定我是否需要这样做)。然后我在*:88上点击浏览门户,我收到Internet Explorer无法显示网页。我检查了我的模块,我看到UrlRoutingModule-4.0是管理和继承的。我必须忽略一个明显的设置,因为这是我的第一个网站。任何帮助表示赞赏。谢谢。

    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 = *

更新: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 }
            );
        }

2 个答案:

答案 0 :(得分:1)

所以经过更多的实验和研究后,我发现了我的问题,这是以前从未这样做过的结果。

  1. 我的第一个问题是我在设置应用程序时包含了一个主机名。因此,当我尝试浏览服务器上的www.portal.com:85时,它不理解该地址,无法连接到任何地址。但是,当我删除主机名并输入http://localhost:85时,它才起作用。我将不得不与我的基础架构团队一起设置。

  2. 我的第二个问题是我们的SQL Server的安全性。我不知道我必须为应用程序池名称设置登录。我使用了这篇文章Login failed for user 'IIS APPPOOL\ASP.NET v4.0'中的第二个答案,因为我不想将身份更改为LocalSystem。在SQL Server安全性下设置登录后,该站点正在运行。这是正确的做法吗?

答案 1 :(得分:0)

如果您在IE中禁用友好的错误消息会很有帮助。在“高级”选项卡上的“Internet选项”中,在“浏览”下取消选择“显示友好HTTP错误消息”。然后再试一次。希望您会看到实际问题是HTTP状态代码。难道它找不到服务器,你得到404(未找到页面),401未经授权,500等等。

通过这些信息,诊断起来会容易得多。