Dot-Net

為什麼我的 web 項目找不到我的 elmah.axd 文件

  • March 5, 2013

在我的 web.config 文件中,我擁有執行 elmah 所需的所有對 elmah 的引用。除了這部分程式碼:

<location path="elmah.axd">
   <system.web>
       <authorization>
           <allow roles="admin" />
           <deny users="*" />
       </authorization>
   </system.web>
</location>

ReSharper 或 Visual Studio 都給了我錯誤:

位置元素未使用:在 elmah.axd 路徑中找不到項目:未找到 Web 項目的路徑\elmah.axd

我從 NuGet 安裝了 elmah 包並保存了 dll,當我轉到站點的根目錄並鍵入 root/elmah.axd 時,我可以訪問 elmah 日誌;但是,我需要將這些日誌的訪問權限限制為管理員。

我有兩個使用者:管理員和使用者我只希望具有管理員角色的使用者訪問 elmah 日誌。

我錯過了這個難題的一部分嗎?

沒有錯……只是 reSharper 有點傻。因為它找不到具有該名稱的物理文件,它認為它不存在並給你你所看到的錯誤。

您可以使用 ReSharper 禁用註釋來忽略它,如下所示:

<!-- ReSharper disable WebConfig.RedundantLocationTag -->
<!-- ReSharper disable WebConfig.WebConfigPathWarning -->
<location path="elmah.axd">
<!-- ReSharper restore WebConfig.WebConfigPathWarning -->
 <system.web>
   <authorization>
     <allow roles="admin" />
     <deny users="*" />
   </authorization>
 </system.web>
</location>
<!-- ReSharper restore WebConfig.RedundantLocationTag -->

但它看起來很醜;-)

引用自:https://stackoverflow.com/questions/15232319