The configuration section 'system.serviceModel' cannot be read because it is missing a section declaration

2

We already created an webservice in Visual Studio 2013 with .Net 4.5. This webservice runs well local in the same computer.

Right now we want to export this webservice to an Windows Server 2008 with IIS. We already made an webservice running in port 8080.

But when we copy the exported files to the root directory of this webserver the folowwing error occured:

Error Summary 
HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration data for the page is invalid.


Detailed Error Information 


Module
IIS Web Core 

Notification
Unknown 

Handler
Not yet determined 

Error Code
0x80070032 

Config Error
The configuration section 'system.serviceModel' cannot be read because it is missing a section declaration  

Config File
\\?\C:\inetpub\wwwroot\YOR24Websevices\web.config 

Requested URL
http://localhost:8080/ 

Physical Path


Logon Method
Not yet determined 

Logon User
Not yet determined 


Config Source    10:   </system.web>
   11:   <system.serviceModel>
   12:     <bindings>

The webconfig we exported in Visual studio is:

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

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="RightNowSyncBinding">
            <security defaultAlgorithmSuite="Default" authenticationMode="UserNameOverTransport"
            requireDerivedKeys="true" securityHeaderLayout="Lax" includeTimestamp="false">
            <localClientSettings detectReplays="false" />
            <localServiceSettings detectReplays="false" />
          </security>
          <textMessageEncoding messageVersion="Soap12" />
          <httpsTransport />
        </binding>
      </customBinding>
    </bindings>
    <client>
      <endpoint address="https://tkbc-fleetsupport--tst.custhelp.com/cgi-bin/tkbc-fleetsupport--tst.cfg/services/soap"
        binding="customBinding" bindingConfiguration="RightNowSyncBinding"
        contract="RightNowServiceReference.RightNowSyncPort" name="RightNowSyncPort" />
    </client>
    <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>
    <services>
      <service name="Yor24Service.Service">
        <endpoint address="" contract="Yor24Service.IService" binding="basicHttpBinding"/>
        <endpoint address="mex" contract="IMetadataExchange" binding="mexHttpBinding"/>
      </service>
    </services>
    <protocolMapping>
        <add binding="basicHttpBinding" scheme="http" />
    </protocolMapping>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>

</configuration>

What is the problem with this generated config file?

c#
web-services
iis
soap
web-config
asked on Stack Overflow Jan 16, 2014 by JelleP • edited Dec 3, 2014 by davmos

2 Answers

9

Starting with .Net Framework 4 service behaviors do not require a name (MSDN). Before .Net 4 it was mandatory. Because your service behavior does not have a name:

<serviceBehaviors>
    <behavior>
        <!-- name attribute missing in behavior -->
    </behavior>
</serviceBehaviors>

and IIS is throwing an error I suspect your app pool is not running .Net 4 or newer.

answered on Stack Overflow Jan 16, 2014 by venerik • edited Dec 3, 2014 by davmos
0

http://blogs.msdn.com/b/wenlong/archive/2010/11/23/why-does-machine-config-contain-invalid-xml-content-after-installing-net-3-5-patches.aspx

Try this link, solution 3 work with me

Solution 3: Run attached javascript file
The above solutions do not fix the Issue 3. So I created a javascript FixServiceModel30Reg.js to fix the problem. You can run it as following to fix all of the above issues. Steps:
·        Download the script FixServiceModel30Reg.txt and save it to the root of c: drive.
·        Rename it to FixServiceModel30Reg.js.
·        Open the Command Prompt window and run the following command:
Cscript.exe c:\FixServiceModel30Reg.js
answered on Stack Overflow Oct 14, 2015 by Grey Wolf • edited Oct 15, 2015 by Grey Wolf

User contributions licensed under CC BY-SA 3.0