Navigation

Knowledgebase

Fixing the Eco Webserver Swashbuckle error

Last updated: 02/24/19
written by  Nodecraft Staff

Introduction

Eco Web server fixed with swashbuckle error

With the latest Eco server 0.8.0.0 and higher (tested up to 0.8.0.3), you may find that your Eco server doesn't start the webserver up correctly, breaking a lot of essential in-game functionality. It turns out it's significantly more difficult to save the world without scientific data, laws, or a basic government (who would have known?). Without the global impact created from this UI, the game was effectively broke or unusable.

Technical Details

The error printed from the server during startup will look something like the following. There's a larger stacktrace that we've condensed for easier readability.

Failed to start webserver (TargetInvocationException): Exception has been thrown by the target of an invocation.
...
Method not found: Swashbuckle.Application.SwaggerEnabledConfiguration Swashbuckle.Application.HttpConfigurationExtensions.EnableSwagger(System.Web.Http.HttpConfiguration,System.Action`1<Swashbuckle.Application.SwaggerDocsConfig>)

This error is common when running the server via Linux in a Mono environment. There have been reports of a similar error in Windows, but this fix has not been confirmed working there yet.

This error is a result of certain Windows specific libraries seemingly not being loaded, despite being required for the webserver.

Steps to resolve the issue

Thankfully, the fix is actually really simple! You just need to add the file shown below to the root directory of your gameserver. See below for the specifics for how to get this fix applied to your server.

This fix has only been confirmed working on the 0.8.0.3 version of Eco. It's possible that it may need updates for future versions of the game. Check back to this article for any future updates.

Fix in One-click

We've already applied a fix to all Nodecraft customers currently running an Eco server. In case one of your backups or has this problem. you can fix this instantly by using the One Click installer to perform a SteamCMD: Validate as shown below and our system will apply the fix for you after ensuring your server is updated. Don't have a Nodecraft server? No worries - you can migrate your Eco server for an instant fix, otherwise proceed to the steps below.

Nodecraft 1-click Eco server update

Manually fix

You can manually fix your linux Eco server by simply uploading the following file to your server. This file will force Mono to load a few required libraries. Mono is a linux program that allows you to run the Windows Eco Server on your linux server.

  • Download the following EcoServer.exe.config and add it to your server directory alongside the EcoServer.exe.
  • Restart your server and it should come online with a functional webserver.

EcoServer.exe.config file for Eco

Download the fix

This EcoServer.exe.config file fixes your Linux Eco webserver server. The downloaded file will include the following code to fix your server:

Download

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.4.0" newVersion="5.2.4.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.4.0" newVersion="5.2.4.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Can't find answers to your questions?

Feel free to contact our support team for personal and professional help.

Write Articles, Get FREE Servers!

More information coming soon.

Chat blocked!

Nodecraft is an ad-free website! Disable adblock if you have any questions.