【问题标题】:Exclude documentation when deploying to production部署到生产时排除文档
【发布时间】:2018-06-21 01:59:28
【问题描述】:

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

我使用方法的cmets来生成Visual Studio中默认创建的帮助页面。

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

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

有什么方法可以将它们排除在生产部署之外?

我尝试删除这些文件并确保 Web 服务调用仍然有效,它们确实有效,但我不确定我可以删除哪些文件,我想知道是否有任何更安全/自动的方法可以做到这一点?

这是我目前拥有的文件列表:

  • ApplicationInsights.config
  • App_Data
  • 地区
  • bin
  • 内容
  • favicon.ico
  • 字体
  • Global.asax
  • 脚本
  • 观看次数
  • Web.config
  • WsCommon.wpp.targets

【问题讨论】:

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


    【解决方案1】:

    我最终做了以下事情:

    文件 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 错误。无需对来自

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

    【讨论】:

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

      【讨论】:

      • “基本文件”也包含帮助页面,我想排除它们。
      • 尝试将文件的“复制到输出目录”属性设置为不复制,并确保在项目属性中,未设置输出/XML 文档文件字段。
      猜你喜欢
      • 1970-01-01
      • 2018-06-21
      • 2017-03-06
      • 2021-04-14
      • 2011-07-22
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多