1
votes

I recently upgraded to .Net Framework 4.8 and ServiceStack 5.6.0 on one of my projects. When I run it in Visual Studio through IIS express it works fine, but in IIS I get the following.

HTTP Error 404.0 - Not Found The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Anyone have similar issues?

Windows 10 - IIS 10

Below is my web.config: (the sections I think is relevant)

  <system.web>
    <compilation targetFramework="4.8" />
    <pages controlRenderingCompatibilityVersion="4.0" />
  </system.web>

 <system.webServer>
   <directoryBrowse enabled="true" />
    <modules runAllManagedModulesForAllRequests="true" />
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
    <add path="*" name="ServiceStack.Factory" 
    type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*" 
    preCondition="integratedMode" resourceType="Unspecified" 
    allowPathInfo="true" />
   </handlers>
 </system.webServer>

Another thing this is my versions of ServiceStack

<package id="ServiceStack" version="5.6.0" targetFramework="net48" />
  <package id="ServiceStack.Client" version="5.6.0" targetFramework="net48" />
  <package id="ServiceStack.Common" version="5.6.0" targetFramework="net48" />
  <package id="ServiceStack.Interfaces" version="5.6.0" targetFramework="net48" />
  <package id="ServiceStack.Text" version="5.6.0" targetFramework="net48" />

Troubleshooting:

I turned my internal logging on and I am able to see logs from the Global (method Application_Start) it calls the ServiceStack AppHost().Init() which also runs without error and does the Configure().

My Application_Start:

    protected void Application_Start(object sender, EventArgs e)
    {
        log4net.Config.XmlConfigurator.Configure();
        Logger.LogInfo("Global Application_Start prior AppHost().Init()");
        new AppHost().Init();
        Logger.LogInfo("Global Application_Start done");
    }

My AppHost Configure()

    public override void Configure(Funq.Container container)
    {
        try
        {
            Logger.LogInfo("AppHost Configure");
            //plugins
            Plugins.Add(new CorsFeature());
            Plugins.Add(new PostmanFeature());
            Plugins.Add(new ValidationFeature());

        }
        catch (Exception ex)
        {
            Logger.LogException(ex);

            if (ex.InnerException != null)
                throw new Exception(ex.InnerException.Message);
            else
                throw new Exception(ex.Message);
        }
    }

Both the above methods execute without errors, needless to say seeing that this project does run successful in IIS express through Visual Studio. I am certain its an IIS or config error I am just not sure what, my .Net 4.7.2 projects run without issues.

1
open the control panel and go the iis feature and make sure that .Net Framework 4.8 is enabled. - Jalpa Panchal
Do any static html files works? - Jalpa Panchal

1 Answers

1
votes

The problem seem to be that I am hosting 2 application under one website in IIS, normally it is not an issue, but in my scenario my one website is .net 4.8 and the other one .net 4.7.

To resolve I created a website for each application and that solve my problem. In the past I could mix .Net4.5 and .Net 4.7 application but it seems to not work when working with .net 4.8.