Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does a WCF service always use an svc file?

Tags:

wcf

asmx

I'm converting my asmx web services to WCF. Does this inherently mean the file type needs to change from .asmx to .svc?

like image 990
tuseau Avatar asked Oct 27 '25 05:10

tuseau


1 Answers

Every WCF service needs to have a host process : a windows service,IIS or any other .NET program. This host will create an instance of the System.ServiceModel.ServiceHost (or any custom System.ServiceModel.ServiceHostBase) and will manage the service configurations, behaviors, channels.

However, when a service is hosted in IIS it behaves a little bit differently. By default, we need to create a physical file with .svc extension. It's a pure IIS requirement. There's a module within IIS that handles the .svc file type. This file is just a declaration of the service type and optionnaly service host factory type.

<%@ ServiceHost Language="C#" Debug="true" Factory="System.ServiceModel.Activation.ServiceHostFactory" Service="MyFamousCalculatorService" CodeBehind="MyFamousCalculatorService.svc.cs" %>

Since WCF 4.0, we can create and deploy services in IIS without a physical .svc file.This can be done using the serviceActivations configuration in the system.serviceModel configuration section.

<configuration>
  <system.serviceModel>
    <serviceHostingEnvironment>
      <serviceActivations>
        <add relativeAddress="MyFamousCalculatorService.svc" service="MyFamousCalculatorService"/>
      </serviceActivations>
    </serviceHostingEnvironment>
  </system.serviceModel>
</configuration>
like image 52
Cybermaxs Avatar answered Oct 29 '25 22:10

Cybermaxs



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!