title: How do I create a public endpoint and a local endpoint that only I can access with WCF?
body: <p>So I have created my public WCF service, and it is accessible, and it works. However, I noticed upon retrieving the available methods in the wsdl that there are methods available to the public that I don't want to be accessible. </p>
  
  <p>Example:</p>
  
  <pre><code>public interface IJobs { 
      List&lt;Jobs&gt; GetAllJobs(); //Good
  }
  
  public interface IJobManagement {
      void AddNewJob(Jobs job); //Bad
  }
  </code></pre>
  
  <p>Config</p>
  
  <pre><code>&lt;services&gt;
    &lt;service name="Services.Data.PublishService" &gt;
      &lt;clear/&gt;
      &lt;endpoint address="JobsHttp" binding="basicHttpBinding" contract="Services.Data.IJobs" &gt;&lt;/endpoint&gt;
      &lt;endpoint address="JobsTCP" binding="netTcpBinding" contract="Services.Data.IJobManagement" /&gt;
      &lt;endpoint binding="mexHttpBinding" name="httpmex" contract="IMetadataExchange"&gt;&lt;/endpoint&gt;
      &lt;endpoint binding="mexTcpBinding" name="mex" contract="IMetadataExchange"&gt;&lt;/endpoint&gt;
      &lt;host&gt;
        &lt;baseAddresses&gt;
          &lt;add baseAddress="http://localhost:9000/"/&gt;
          &lt;add baseAddress="net.tcp://localhost:9001"/&gt;
        &lt;/baseAddresses&gt;
      &lt;/host&gt;
    &lt;/service&gt;
  &lt;/services&gt;
  </code></pre>
  
  <p>I thought that maybe creating a new endpoint would solve my problem but in this configuration it did nothing and I see why. I am just trying to figure out how to take IJobManagement out of the picture to the public, and make it only accessible on the local network.</p>
  
  <p>This is my service class and my methods exist in there.</p>
  
  <pre><code>public class PublishService : IJobs, IJobsTCP { //Methods are in here. }
  </code></pre>
  
  <p><strong>EDIT</strong> </p>
  
  <p>And to further describe, when a new job is added I have another WCF service that will push to this WCF service and modify the <code>List&lt;Jobs&gt;</code></p>