WCF NetNamedPipeBinding Service NorthwindService example vs MyService

99封情书 提交于 2019-12-11 04:08:25

问题


I have complete exhausted resources on trying to get NetNamedPipeBinding for my WCF Service working. I was able to get the NorthwindService example working found here.

For the NorthwindService example, I have the following:

namespace NorthwindServices
{
   public class Customer : ICustomer
   {
        public string GetCustomerName(int CustomerID)
        {
            return CustomerID.ToString();
        }
   }
}

namespace NorthwindServices
{
    [ServiceContract]
    public interface ICustomer
    {
        [OperationContract]
        string GetCustomerName(int CustomerID);
    }
}

And the configuration for the example is the following:

<system.serviceModel>
<services>
  <service name="NorthwindServices.Customer"
           behaviorConfiguration="ServiceBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="net.pipe://localhost/NorthwindServices/Customer"/>
      </baseAddresses>
    </host>
    <!-- Service Endpoints -->
    <!-- Unless fully qualified, address is relative to base address supplied above -->
    <endpoint address="CustomerService" binding="netNamedPipeBinding" contract="NorthwindServices.ICustomer"/>
    <endpoint address="CustomerService/mex" binding="mexNamedPipeBinding" contract="IMetadataExchange"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <!-- To avoid disclosing metadata information, 
      set the values below to false before deployment -->
      <serviceMetadata httpGetEnabled="False" httpsGetEnabled="False"/>
      <!-- To receive exception details in faults for debugging purposes, 
      set the value below to true.  Set to false before deployment 
      to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="False" />
    </behavior>
  </serviceBehaviors>
</behaviors>

I have an IIS Site defined for this with the details below:

So when I go to 'Add Service Reference' I can pull in the reference perfectly fine.

However, when I try to do the same in my actual application, I still cannot seem to figure it out. I am unable to pull in the reference.

The site structure is the following:

The top level site is an MVC site, and there is an "API" virtual directory below it where the service resides that I am trying to expose over NetNamedPipeBinding.

The bindings for the site are the following:

The config for the service I am trying to expose over named pipes is the following:

<system.serviceModel>
<services>
  <service name="Site.API.Service.WorkItemQueueService"
           behaviorConfiguration="ServiceBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="net.pipe://localhost/WorkItemQueueService"/>
      </baseAddresses>
    </host>
    <endpoint address="QueueService"
              binding="netNamedPipeBinding"
              contract="Site.API.Service.IWorkItemQueueService"/>
    <endpoint address="QueueService/mex"
              binding="mexNamedPipeBinding"
              contract="IMetadataExchange"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <serviceMetadata httpGetEnabled="false"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True"/>

The service implementation is the same as the customer service above, but obviously renamed to match the configuration above.

When I try to add a service reference, or find the metadata for this, It cannot find it.

IMPORTANT - All of the pre configuration items such as starting the Net Pipe listerner and role service have been completed, hence the NorthwindServices example works.

来源:https://stackoverflow.com/questions/19841399/wcf-netnamedpipebinding-service-northwindservice-example-vs-myservice

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!