首页 > 解决方案 > 如何在 Web 服务 C# 的 ASMX 文件中隐藏一些声明的方法

问题描述

我对 Web Service / WCF 有一个疑问,我正在创建服务,它分别有 10 种方法

test1() , Program1(int age),Describe1(), DisplayAge(string name),,SimilarInterest(),ServiceCall(), Hide(), Difference(), WebService() 和 Help()

现在在 asmx 中托管此服务后,仅应显示以下方法。其他人应该不需要显示。DisplayAge(string name),,SimilarInterest(),ServiceCall() 当我调用http://URL.asmx?wsdl时,只有这三个应该显示, 其他 7 个方法不需要显示在 asmx wsdl 文件中。如何做到这一点?

标签: c#asp.netweb-serviceswcfasp.net-web-api

解决方案


据我所知,在 XML Web Service(ASMX) 中,如果您希望服务既被调用又不显示在 WSDL 中,这应该不起作用。使用私有修饰方法或删除 [WebMethod] 属性会导致不再调用该方法。如果在 WCF 中我们可以实现身份验证、无法调用单个方法的授权,或者根本不公开元数据。但是我们不能隐藏指定的方法(但可以被外界调用)。
https://social.msdn.microsoft.com/Forums/en-US/533e0361-e9e0-400b-a7b2-f098a9ef3e75/how-to-prevent-web-method-from-showing-on-service-description-page? forum=asmxandxml
如果有什么我可以帮忙的,请随时告诉我。


推荐阅读