asp.net-mvc - 使用 MVC 和 WebAPI 避免 Resharper <location> web.config 警告

标签 asp.net-mvc web-config asp.net-web-api resharper

ReSharper 7.1.1 代码检查错误报告 <location> web.config 中的元素如果它们涉及与源树中的文件夹不直接对应的 URL,则文件是多余的。如果您使用的是 ASP.NET MVC 或 Web API,则 URL 路径不直接对应于任何特定的物理文件夹是正常的。

如果您运行解决方案范围的检查,您会收到两个警告,我已经能够禁用其中一个,但我不知道如何禁用第二个。

第一个是“冗余位置元素”警告。 ReSharper 淡出整个位置部分。这是它会淡出的示例:

<location path="FederationMetadata">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

如果您通过 ACS 使用联合登录,并且您希望为此提供元数据端点,则需要此配置。但是不会有这个名字对应的路径。

(严格来说,这与 MVC 或 Web API 无关。我给出了这个示例,因为它很常见。但是,我的项目也有几个 <location> 元素对应于通过 MVC 和 Web API 路由配置处理的路径,并且他们有同样的问题. 根本原因似乎是相同的:ReSharper 在项目中看不到与此位置对应的任何内容,因此它错误地得出结论认为这是错误的。它影响 MVC 和 Web API Controller ,以及任何由于模块等原因可用的路径。)

摆脱第一个警告很容易:您可以在“检查严重性”设置中将其关闭。

然后你会得到第二个警告:“Location element is used: no project item found at FederationMetadata”(以及对于每个具有相应 <location> 元素的 Controller 的类似警告)。

这个仅出现在您检查整个解决方案时出现的“检查结果”面板中。当您查看源文件本身时,通常不会出现任何检查小部件。奇怪的是,这个似乎没有被禁用的选项。

我知道您可以右键单击并选择“隐藏...”(尽管这似乎认为这是一个“冗余位置”问题,我已经在设置中禁用了该问题),但据我所知,隐藏检查结果在我的机器上是本地的。我想配置团队共享点设置,以便它不会在任何地方显示此警告。

我的目标是为所有用户提供干净的检查结果,而不是让每个用户隐藏结果。 Resharper 虚假地报告了这个问题 - web.config很好,只是R#误解了它。有谁知道我怎样才能使第二个警告消失? (或者,更好的是,有什么方法可以让 R# 能够知道这些“隐藏”位置确实存在?)

最佳答案

我刚刚添加了这个:

  <!-- ReSharper disable WebConfig.RedundantLocationTag -->
  <!-- ReSharper disable WebConfig.WebConfigPathWarning -->
  <location path="api">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <!-- ReSharper restore WebConfig.RedundantLocationTag -->
  <!-- ReSharper restore WebConfig.WebConfigPathWarning -->

关于asp.net-mvc - 使用 MVC 和 WebAPI 避免 Resharper <location> web.config 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15655452/

相关文章:

c# - 用于图像扩展的 ASPNET Core img src 通配符

c# - OpenExeConfiguration 路径问题

visual-studio-2015 - 元素 'system.webServer' 具有无效的子元素 'aspNetCore'

asp.net-web-api - 从 Asp.Net WebApi Controller 返回 HTTP 403 子状态

javascript - 上传图像 Web Api

c# - ASP.NET MVC 中的面向方面编程

javascript - 是否可以通过 ajax 中的模型传递额外的参数?

c# - 你如何使用 MVC/Razor 封装 logic/html

visual-studio - Visual Studio - 用于部署/源代码控制/源代码共享的用户名/密码管理

c# - 在 C#' WebAPI 中的 ApiController 上使用 "transfer-encoding: chunked"提供数据