New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FileNotFoundException thrown during Stateful reliable service startup PipelineFactory.CreatePipeline call #154
Comments
This usually means that the deployment cluster does not have some dependencies that the application expects. For example, the application might be targeting a version of the .NET Framework that is not installed on cluster nodes. It just so happens that EventFlow is called early from service Main() method and triggers assembly resolution that fails, resulting in FileNotFound exception |
@SvenVanHauwe when you figure out what the problem was, please let us know--it will be helpful for people who run into the same problem. We had another issue like this one and it was not fully explained |
I enabled logging bindings on one node, netstandard 2.0 failed to load. LOG: DisplayName = netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 |
I think my problem might have something to do with Issues with .NET Standard 2.0 with .NET Framework & NuGet . The reliable services which fail are targeting framework 4.6.2, and use packages.config. |
@SvenVanHauwe @oliverbes so is the workaround described in dotnet/standard#481 (enable auto-generation of binding redirects and using PackageReference instead of packages.config) feasible for you? And if yes, does your application work when you apply it? It would be great if we could reproduce the problem outside of Service Fabric. I suspect a machine with .NET Fx 4.6.2 but without .NET Core FX would do. Will try that in the next few days, but let me know if you find something interesting in the meantime. |
I actually gave it a try this afternoon - i.e. converting my SF Service's project file for auto-generated binding re-directs and using PackageReference instead of packages.config - but it failed. As of my understanding, only the top-level NuGet Packages would get a PackageReference setting in the project file, right? Would that be sufficient?
Would that list be OK? Anything missing? |
@karolz-ms I decided rebuild my solution from scratch, dividing the different microservices into different solutions was something on my todo list anyway. |
@karolz-ms I changed the csproj file as indicated in dotnet/standard#481, but still get the same exception. |
@karolz-ms Finally got one of the services to work on an azure servicefabric cluster. |
@SvenVanHauwe so is the application working as expected now? If so, can you describe what the fix/workaround was? |
@karolz-ms yes the application is working. Just removing package.config and using packagereferences in csproj was not enough in my case. The project build, deployed and worked on my development local cluster. |
OK, sorry for being dense here, but for the sake of other users of the EventFlow libraries, when you say
then do you remember what did make it work when deployed to remote cluster? |
@karolz-ms |
Roger! Since it is working, I am going to close this issue for now |
I have added Eventflow to a stateful service recently, works on my local development service fabric instance.
After I deployed it to our azure service fabric (test) environment the service failed to activate. The event log on the node had following entries. the file eventFlowConfig.json is present in the Config. directory on that node.
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
at Microsoft.Diagnostics.EventFlow.ServiceFabric.ServiceFabricDiagnosticPipelineFactory.CreatePipeline(System.String, System.String, System.String)
at LayerAggregatorServicesManager.Program.Main()
The text was updated successfully, but these errors were encountered: