【问题标题】:Adding MVC application as a subsite将 MVC 应用程序添加为子站点
【发布时间】:2017-03-13 19:40:33
【问题描述】:

我有一个通用的 Web 应用程序正在运行 http://sites.acme.com。 我想添加一个子站点@9​​87654322@。

过去要添加新的子站点(SubSite1),我们只需将项目从 VS 发布到该文件夹​​ Sites/SubSite1 的子文件夹中,然后编辑 Sites 的 web.config 并添加:

<location path="SubSite1">    
<system.webServer>
  <defaultDocument enabled="true">
    <files>
      <clear/>
      <add value="index.aspx"/>
    </files>
  </defaultDocument>
</system.webServer>
</location>   

现在,试图发布一个没有 aspx 页面的 mvc 网站,我试图弄清楚如何让 IIS 识别它需要点击 SubSite1.dll 才能启动主控制器,并让 index.cshtml 返回。

我需要在网站的网络配置中编辑任何配置吗?

【问题讨论】:

    标签: asp.net-mvc iis


    【解决方案1】:

    通常在 MVC 应用程序的情况下,我们不设置默认文档。我们在注册路由时设置默认控制器和默认操作。例如以下路由注册将默认控制器设置为“Home”控制器,将默认操作设置为“Index”。

    routes.MapRoute(
           "Default",               // Route name
           "{controller}/{action}", // URL with parameters
            new { controller = "Home", action = "Index" }  // Parameter defaults
            );
    

    因此,当用户键入http://mysite/ 时,它会在“Home”控制器中调用“Index”操作。就像用户输入http://mysite/Home/Index一样好

    现在,为了设置您的方案,您不需要添加默认文档配置,如问题所示。只需在 IIS 中的“站点”应用程序下将“子站点 1”配置为“应用程序”,只要您为子站点 1 正确设置了路由,您就可以开始了。

    【讨论】:

    • 因此,如果我的子站点位于名为“SubSite1”的文件夹中,并且默认设置为 home/index,那么应该使用哪个 url 将我带到我的索引视图 http://sites.acme.com/subsite1
    • @Steve'Kepano'Eggering:是的。 sites.acme.com/subsite1 将带您进入 subsite1 应用程序的默认视图。不要忘记在 IIS 中将 subsite1 配置为“应用程序”。
    • 配置为应用程序,通用站点 web.config 如下所示:&lt;location path="subsite1"&gt; &lt;system.web&gt; &lt;authorization&gt; &lt;allow users="*"/&gt; &lt;/authorization&gt; &lt;/system.web&gt; &lt;/location&gt; 但我仍然收到 500 错误。也重新启动了 IIS。
    • 检查事件日志,看看那里是否记录了任何错误。
    • 我的问题最终与文件夹结构或命名无关。它不起作用,因为我忘记了这是与我部署的服务器不同的服务器,而且我们还没有在该服务器上安装 .net core。
    猜你喜欢
    • 1970-01-01
    • 2015-09-28
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多