none
WCF service & TCP binding issue RRS feed

  • Question

  • i am learning wcf. so i just write a simple where i use TCP binding & basicHttpBinding. when i am running only service with basicHttpBinding then no problem occur but when i am putting tcp binding then problem occur. so here i am pasting my code and screen shot too. my solution screen shot

    here is my full code with config entry details
    
    namespace WcfServiceLibrary4
    {
        // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
        [ServiceContract]
        public interface IService1
        {
    
            [OperationContract]
            string GetData(int value);
    
            [OperationContract]
            CompositeType GetDataUsingDataContract(CompositeType composite);
    
            // TODO: Add your service operations here
        }
    
    
        // Use a data contract as illustrated in the sample below to add composite types to service operations.
        [DataContract]
        public class CompositeType
        {
            bool boolValue = true;
            string stringValue = "Hello ";
    
            [DataMember]
            public bool BoolValue
            {
                get { return boolValue; }
                set { boolValue = value; }
            }
    
            [DataMember]
            public string StringValue
            {
                get { return stringValue; }
                set { stringValue = value; }
            }
        }
    }
    
    namespace WcfServiceLibrary4
    {
        // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
        public class Service1 : IService1
        {
            public string GetData(int value)
            {
                return string.Format("You entered: {0}", value);
            }
    
            public CompositeType GetDataUsingDataContract(CompositeType composite)
            {
                if (composite == null)
                {
                    throw new ArgumentNullException("composite");
                }
                if (composite.BoolValue)
                {
                    composite.StringValue += "Suffix";
                }
                return composite;
            }
        }
    }
    
    <?xml version="1.0"?>
    <configuration>
    
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
      <system.serviceModel>
        <services>
          <service name="WcfServiceLibrary4.Service1">
            <host>
              <baseAddresses>
                <!--<add baseAddress = "http://localhost:8733/Service1/" />-->
                <add baseAddress="net.tcp://localhost:8734/Service1/"/>
              </baseAddresses>
            </host>
            <!--<endpoint address="" binding="basicHttpBinding" contract="WcfServiceLibrary4.IService1"/>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>-->
            <endpoint address=""    binding="netTcpBinding" contract="WcfServiceLibrary4.IService1"/>
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <serviceMetadata httpGetEnabled="False" httpsGetEnabled="False"/>
              <serviceDebug includeExceptionDetailInFaults="False" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>
    
     <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>
    
    </configuration>

    when i am running the apps from VS2010 IDE then getting error called Failed to add a service. Service metadata may not be accessible. Make sure your service is running and exposing metadata.

    so search google and from this url i came to know that i have to start few services http://rohitguptablog.wordpress.com/2011/06/16/configuring-wcf-service-with-nettcpbinding/

    but when i try to start those services then i am getting error

    so please guide me in details how could start those service and also guide me what else i need to setup in my pc as a result i can test my wcf apps with tcp binding from my pc from vs2010 ide. thanks

    Thursday, January 23, 2014 7:40 PM

Answers

  • Hi,

    It seems that you are hosting your wcf service in the IIS.

    By default, the nettcpbinding can not be host in the IIS, then we should do some settings as the article you post.

    I can follow the article very well. So please try to check you have installed the following:

    And you can check service dependencies in Administration Tools -> Services.

    Make sure dependency service is running when you attempt to restart IIS Admin. Then try to start IIS Admin Service and see whether it helps.

    Best Regards,
    Amy Peng


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    Friday, January 24, 2014 9:03 AM
    Moderator