Git Product home page Git Product logo

Comments (4)

Antaris avatar Antaris commented on July 30, 2024

Are you running the templates while trying to compile them in parallel?

from razorengine.

Madd0g avatar Madd0g commented on July 30, 2024

Woops, didn't see your response there :(

It is possible that sometimes the code reaches the call to the template before the loading-code finished running (the loading is an async process because it takes more than 20 seconds, I have a lot of templates), what I know is - the problem doesn't go away with time.

However, it's highly intermittent and I couldn't find a solid cause for this. I've added all kinds of logging messages all around the template loading code and it seems like all templates are loaded correctly (like I said in the OP - I get no errors at all while loading, ever), but the "template doesn't exists" errors don't go away, I have to restart the server to get them to work.

I have the template-loading code in the Application_Start event, maybe because the dev-server keeps recreating them it creates an I/O problem? I really don't know but it happens often enough to make me worried of what will happen in production (not there yet)

I'm on a slightly outdated version, haven't updated in months, if that matters

Thanks

from razorengine.

Madd0g avatar Madd0g commented on July 30, 2024

I'm getting these errors under IIS as well :(
Is there anything I can check or do?
I get the error even if I do the compiling in the main thread (no accesses to the template before the compile)

this is how I compile the templates:

Parallel.ForEach(templates, new ParallelOptions() { MaxDegreeOfParallelism = Environment.ProcessorCount },
        (templateObj, state) =>
            {
                try
                {
                    Service.Compile<ILoveObject>(templateObj.templateText, templateObj.Id.ToString());

                    compiledTemplates.Add(templateObj); //for access via 'Id'

                }
                catch (Exception e)
                {
                    log.Error(String.Format("Error compiling template {0}", templateObj.Name));
                    log.Error(e);
                }
            }
        );

Then I find the correct template in the compiledTemplates list and Run var result = Service.Run(templateId, loveObject); and get the "No template exists with name" exception.

Thanks.

from razorengine.

Madd0g avatar Madd0g commented on July 30, 2024

I tried to remove the parallel thing, but it was to slow, so I just adjusted to compile on demand, hope it was because of the parallelization and this solves the problem.

from razorengine.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.