【问题标题】:How can I call one asmx but not another, in the same folder?如何在同一个文件夹中调用一个 asmx 而不是另一个?
【发布时间】:2015-03-05 13:29:14
【问题描述】:

我有两个旧式 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 临时文件,但这没有帮助。

有什么解决问题的建议吗?

【问题讨论】:

    标签: caching iis asmx unauthorized


    【解决方案1】:

    这并不容易找到,但在 inetpub\temp\appPools\ 中有一个名为应用程序池的文件夹。在该文件夹中有部分 IIS 配置的“副本”。

    在某些时候,我们一定不小心标记了实际的 asmx 文件,而不是我们更改 autentication 时的文件夹。因此它包含一个仅用于文件的特殊配置部分。喜欢:

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

    当我们删除该部分时,它再次起作用:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 2019-05-20
      • 2023-03-30
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多