所以我创建了我的公共 WCF 服务,它是可访问的,并且可以正常工作。但是,在检索 wsdl 中的可用方法时,我注意到有些方法可供公众使用,但我不想被访问。
例子:
public interface IJobs {
List<Jobs> GetAllJobs(); //Good
}
public interface IJobManagement {
void AddNewJob(Jobs job); //Bad
}
配置
<services>
<service name="Services.Data.PublishService" >
<clear/>
<endpoint address="JobsHttp" binding="basicHttpBinding" contract="Services.Data.IJobs" ></endpoint>
<endpoint address="JobsTCP" binding="netTcpBinding" contract="Services.Data.IJobManagement" />
<endpoint binding="mexHttpBinding" name="httpmex" contract="IMetadataExchange"></endpoint>
<endpoint binding="mexTcpBinding" name="mex" contract="IMetadataExchange"></endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:9000/"/>
<add baseAddress="net.tcp://localhost:9001"/>
</baseAddresses>
</host>
</service>
</services>
我认为也许创建一个新的端点可以解决我的问题,但是在这个配置中它什么也没做,我明白了为什么。我只是想弄清楚如何将 IJobManagement 从图片中公开,并使其只能在本地网络上访问。
这是我的服务类,我的方法存在于其中。
public class PublishService : IJobs, IJobsTCP { //Methods are in here. }
编辑
为了进一步描述,当添加新作业时,我有另一个 WCF 服务将推送到这个 WCF 服务并修改List<Jobs>