Iis

如何在同一個文件夾中呼叫一個 Web 服務,而不是另一個?

  • June 6, 2018

我有兩個老式的 Web 服務 asmx。在具有 Windows 身份驗證的 MVC Web 應用程序中,兩者都位於具有匿名身份驗證的同一子文件夾中。

當我瀏覽其中一個時,我得到了預期的結果,我可以呼叫該服務,但是當我瀏覽另一個時,我得到“HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers.”。

然後我重命名第二個,一切正常。即使我刪除了第二個 asmx 文件,我也會得到未經授權,而不是“找不到資源”。

我在系統資料庫和文件系統中搜尋了對文件名的引用,但什麼也沒找到。我刪除了 ASP.NET 臨時文件,但這並沒有幫助。

有什麼解決問題的建議嗎?

這並不容易找到,但在 inetpub\temp\appPools\ 中有一個名為應用程序池的文件夾。在該文件夾中有部分 IIS 配置的“副本”。

在某些時候,我們一定不小心標記了實際的 asmx 文件,而不是我們更改 autentication 時的文件夾。因此它包含一個僅用於文件的特殊配置部分。像:

<location path="Web/Services/ServiceName.asmx">
   <system.webServer>
       <security>
           <authentication>
               <anonymousAuthentication enabled="false" />
           </authentication>
       </security>
   </system.webServer>
</location>

當我們刪除該部分時,它再次起作用:)

引用自:https://serverfault.com/questions/673258