Search code examples
wcfvisual-studio-mac

System.IO.DirectoryNotFoundException In WCF Webservice


I am creating WCF web service. So i got an example in Github. Project Example I am able to compile the project. But i am getting System.IO.DirectoryNotFoundException error.

My URL is: http://127.0.0.1:8080/v1/HelloService.svc/

My IDE: Visual Studio 2019 MAC

enter image description here

web.xml

<?xml version="1.0"?>
<configuration>

<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="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="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<protocolMapping>
    <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
  <serviceActivations>
    <add relativeAddress="v1/HelloService.svc"
         service="FilelessActivation.Services.HelloServiceImpl"
         factory="System.ServiceModel.Activation.ServiceHostFactory" />
  </serviceActivations>
</serviceHostingEnvironment>
<services>
  <service name="FilelessActivation.Services.HelloServiceImpl">
    <endpoint binding="basicHttpBinding" 
              bindingNamespace="http://oscarkuo.com/v1/hello" 
              contract="FilelessActivation.Services.IHelloService" />
  </service>  
</services> 
</system.serviceModel>
<system.webServer>
 <modules runAllManagedModulesForAllRequests="true"/>
  <directoryBrowse enabled="true"/>
</system.webServer>

</configuration>

Solution

  • The root cause is that we have to enable Windows feature to support SVC extension in IIS. Subsequently, we could have this service working.
    enter image description here
    Besides, please note, In the WCF project, No need SVC file doesn’t represent that the relative address in the ServiceActivations doesn’t contain SVC extension.
    Result.
    enter image description here
    Related links.
    https://learn.microsoft.com/en-us/dotnet/framework/wcf/feature-details/configuration-based-activation-in-iis-and-was
    Feel free to let me know if the problem still exists.