C# Windows服务启动失败,混合模式程序集问题
我这里有一个独特的案例 经过大量的试验和谷歌搜索,我还不能解决这个问题 我有一组运行时版本为“v2.0.50727”的库(第三方),我必须在我的WINDOWS服务应用程序中使用这些库(这里是键“WINDOWS服务”),它需要.Net v4.0(v4.0.30319) 我已经成功地解决了各地描述的混合模式组装错误 这里最丰富的解决方案来源之一: 安装后的服务无法启动。(引发通用超时异常。) 事件查看器中的详细信息(在windows日志>应用程序下)指定 2来源C# Windows服务启动失败,混合模式程序集问题,c#,.net,windows-services,mixed-mode,app-startup,C#,.net,Windows Services,Mixed Mode,App Startup,我这里有一个独特的案例 经过大量的试验和谷歌搜索,我还不能解决这个问题 我有一组运行时版本为“v2.0.50727”的库(第三方),我必须在我的WINDOWS服务应用程序中使用这些库(这里是键“WINDOWS服务”),它需要.Net v4.0(v4.0.30319) 我已经成功地解决了各地描述的混合模式组装错误 这里最丰富的解决方案来源之一: 安装后的服务无法启动。(引发通用超时异常。) 事件查看器中的详细信息(在windows日志>应用程序下)指定 2来源 .Net运行时(详细信息如下) 应
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/> </startup>
确定服务未启动原因的一个选项是将调试器连接到服务 由于调试服务需要:
Thread.Sleep(5000)
在从服务控制管理器启动服务后,给自己5秒钟的时间将调试器连接到服务。在sleep语句之后设置断点
如果您是.NET运行时错误,您可能永远无法到达断点,因为加载时似乎有问题
您是否尝试创建一个简单的应用程序,使用相同的第三方库来验证app.config文件的正确设置
尝试使用以下方法:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
我发现这个信息很怀疑导致程序崩溃的异常是否与
元素有关。它对您的应用程序设置不满意,但没有一条合适的异常消息说明原因。在Main()方法中订阅AppDomain.CurrentDomain.UnhandledException事件,以便获得更好的报告。看起来你已经在这样做了,它需要改进。@HansPassant:我试过你的建议,但没有更好的办法。我试过调试服务,bt无法调试,服务超时还是发生了(尽管我让线程休眠了)。是的,我确实尝试过从一个简单的应用程序调用相同的服务方法,它在指定的配置条目下运行良好。我也试过很多这样的。。。工作正常-解决混合模式错误。但是在app.config中指定了此条目后,服务不会启动。谢谢你的帮助。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>