如何在同一个文件夹中调用一个 asmx 而不是另一个?

How can I call one asmx but not another, in the same folder?

我有两个网络服务,老式的,asmx。在具有 windows 身份验证的 MVC Web 应用程序中,两者都位于具有匿名身份验证的同一子文件夹中。

当我浏览其中一个时,我得到了预期的结果,我可以调用该服务,但是当我浏览另一个时,我得到了 "HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers."。

然后我重命名了第二个,一切正常。即使我删除了第二个 asmx 文件,我也会得到未经授权,而不是 "Resource not found".

我已搜索注册表和文件系统以查找对文件名的引用,但一无所获。我删除了 ASP.NET 个临时文件,但这没有用。

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

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

在某些时候我们一定是不小心标记了实际的 asmx 文件,而不是我们更改身份验证时的文件夹。所以它只包含一个文件的特殊配置部分。喜欢:

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

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