Combining WCF SOAP and REST
The REST project works fine, this can be accessed through this address:  

http://localhost:8525/Device/Login?deviceID=testid&password=a&serialNum=testserial  

I also have WCF SOAP project in my REST project, these two projects are separated in different folders, "SOAP" and "REST".  

My problem is that, after I put this code:  

    private void RegisterRoutes()
    {
        RouteTable.Routes.Add(new ServiceRoute("Device", new WebServiceHostFactory(), typeof(Rest.DeviceComponent)));              
    }  

I can't access now the SOAP service which I was able to access before through this address:  

http://localhost:8525/DeviceComponent.svc (using WCFTest Client)  

Here is the WebConfig  

    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
      <system.serviceModel>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
              <serviceMetadata httpGetEnabled="true"/>
              <!-- 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="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
        <standardEndpoints>
          <webHttpEndpoint>
            <!-- 
                Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
                via the attributes on the <standardEndpoint> element below
            -->
            <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
          </webHttpEndpoint>
        </standardEndpoints>
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
          <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </modules>
        <handlers>
          <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd"/>
        </handlers>
      </system.webServer>
    </configuration>


And inside Global.asax.cs  

    private void RegisterRoutes()
    {
        RouteTable.Routes.Add(new ServiceRoute("Device", new WebServiceHostFactory(), typeof(Rest.DeviceComponent)));
    }    

SOAP sample contract  

    namespace TSDEVICE.SoapSVC.Interface
    {
        [ServiceContract]
        public interface IDeviceComponent
        {
            [OperationContract]
            Session Login(string deviceID, string password, string serialNum, string ip);
            [OperationContract]
            bool Logout(DeviceSession session);
            [OperationContract]
            bool IsLatestVersion(DeviceSession session, int version);
            [OperationContract]
            byte[] DownloadLatest(DeviceSession details);
            [OperationContract]
            DateTime GetServerTime(DeviceSession session, long branchID);
            [OperationContract]
            bool AddDevice(UserSession session, Device deviceitem);
            [OperationContract]
            bool RemoveDevice(UserSession session, long deviceID);
        }
    }  

And the REST part:  

    namespace TSDEVICE.Rest
    {
        [ServiceContract]
        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
        public class DeviceComponent
        {
            [WebInvoke(UriTemplate = "Login?deviceID={deviceID}&password={password}&serialNum={serialNum}", Method = "POST")]
            [OperationContract]
            public TMODELDEVICE.Entities.Session Login(string deviceID, string password, string serialNum)
            {
                string ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                TMODELDEVICE.Logic.DeviceComponent restDC = new TMODELDEVICE.Logic.DeviceComponent();
                return restDC.Login(deviceID, password, serialNum, ip);
            }
    
            public string Sample()
            {
                return "Hello";
            }
        }
    }  

I have to access SOAP and REST, how can I do that? Thanks a lot!
Combining WCF SOAP and REST
===

The REST project works fine, this can be accessed through this address:  

http://localhost:8525/Device/Login?deviceID=testid&password=a&serialNum=testserial  

I also have WCF SOAP project in my REST project, these two projects are separated in different folders, "SOAP" and "REST".  

My problem is that, after I put this code:  

    private void RegisterRoutes()
    {
        RouteTable.Routes.Add(new ServiceRoute("Device", new WebServiceHostFactory(), typeof(Rest.DeviceComponent)));              
    }  

I can't access now the SOAP service which I was able to access before through this address:  

http://localhost:8525/DeviceComponent.svc (using WCFTest Client)  

Here is the WebConfig  

    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
      <system.serviceModel>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
              <serviceMetadata httpGetEnabled="true"/>
              <!-- 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="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
        <standardEndpoints>
          <webHttpEndpoint>
            <!-- 
                Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
                via the attributes on the <standardEndpoint> element below
            -->
            <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
          </webHttpEndpoint>
        </standardEndpoints>
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
          <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </modules>
        <handlers>
          <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd"/>
        </handlers>
      </system.webServer>
    </configuration>


And inside Global.asax.cs  

    private void RegisterRoutes()
    {
        RouteTable.Routes.Add(new ServiceRoute("Device", new WebServiceHostFactory(), typeof(Rest.DeviceComponent)));
    }    

SOAP sample contract  

    namespace TSDEVICE.SoapSVC.Interface
    {
        [ServiceContract]
        public interface IDeviceComponent
        {
            [OperationContract]
            Session Login(string deviceID, string password, string serialNum, string ip);
            [OperationContract]
            bool Logout(DeviceSession session);
            [OperationContract]
            bool IsLatestVersion(DeviceSession session, int version);
            [OperationContract]
            byte[] DownloadLatest(DeviceSession details);
            [OperationContract]
            DateTime GetServerTime(DeviceSession session, long branchID);
            [OperationContract]
            bool AddDevice(UserSession session, Device deviceitem);
            [OperationContract]
            bool RemoveDevice(UserSession session, long deviceID);
        }
    }  

And the REST part:  

    namespace TSDEVICE.Rest
    {
        [ServiceContract]
        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
        public class DeviceComponent
        {
            [WebInvoke(UriTemplate = "Login?deviceID={deviceID}&password={password}&serialNum={serialNum}", Method = "POST")]
            [OperationContract]
            public TMODELDEVICE.Entities.Session Login(string deviceID, string password, string serialNum)
            {
                string ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                TMODELDEVICE.Logic.DeviceComponent restDC = new TMODELDEVICE.Logic.DeviceComponent();
                return restDC.Login(deviceID, password, serialNum, ip);
            }
    
            public string Sample()
            {
                return "Hello";
            }
        }
    }  

I have to access SOAP and REST, how can I do that? Thanks a lot!