部署到生产时排除文档

时间:2018-01-11 16:50:33

标签: asp.net visual-studio iis asp.net-web-api

我在ASP .NET中有一个Web API项目,我有一些Web服务。

我使用方法的注释来生成默认情况下在Visual Studio中创建的帮助页面。

    // GET api/version
    /// <summary>
    /// Test
    /// </summary>
    /// <returns></returns>
    public string Get()
    {
        return "Last version : 74";
    }

它对开发环境很有用,但我们不希望这些页面出现在生产环境中。

有没有办法将它们排除在生产部署之外?

我试图删除文件并确保Web服务调用仍然有效,但是我确实知道哪些文件可以删除,我想知道是否有更安全/自动的方式来执行此操作? / p>

以下是我目前所拥有的文件列表:

  • ApplicationInsights.config
  • App_Data文件
  • 领域
  • 内容
  • 的favicon.ico
  • 字体
  • Global.asax中
  • 脚本
  • 浏览
  • 的Web.config
  • WsCommon.wpp.targets

2 个答案:

答案 0 :(得分:0)

  1. 将网站发布到本地文件夹并部署这些内容,它们只包含基本文件。
  2. 部署该文件夹,或者如果可能,只发布到目标站点。

答案 1 :(得分:0)

我最终做了以下事情:

文件App_Start / RouteConfig.cs

忽略DEBUG配置中HelpPages的路由

public static void RegisterRoutes(RouteCollection routes)
{
     [...]
#if DEBUG
     routes.IgnoreRoute("Help");
#endif
     [...]
}

文件Global.asax.cs

protected void Application_Start()
{
      [...]
#if DEBUG
      AreaRegistration.RegisterAllAreas();
#endif
      [...]
}

文件控制器/ HomeController.cs

应该返回404错误而不是生产中的索引:

public ActionResult Index()
{
     ViewBag.Title = "Home Page";
#if DEBUG
     return View();
#else
     return HttpNotFound();
#endif
}

这样,帮助页面url返回Debug中的帮助页面和Release中的404错误。无需使用

中的文件进行任何进一步操作