我在同一台机器上用C#开发Windows Media 编码器进行流媒体格式转换,在winform是没有什么问题,但用在windows服务中运行就出现,未找到适合的解码器错误提示!实在不明白为什么会这样.都是com组件.引用都正常就是在windows服务运行时就会出错.而winform却正常

解决方案 »

  1.   

    应该是权限问题,你用你的登陆账号去运行windows service。
    可以在windows service的属性里面设置。
      

  2.   

    默认情况下运行windows service的账号是Local system
      

  3.   

    serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;
      

  4.   

    只要在服务中运行,就算不用多线程,并改在单元线程,还是会出现解码问题,但同样的代吗,用winform测试就没有任何问题.
      

  5.   

    在winfrom中无论是多线程(设不设后台线程)还是单线程,去掉单元线程都没有问题,真的不知原因,因为这个是专门用于格式转换的,难道不能用服务来实现.
      

  6.   

    应该不是程序问题  我也有类似问题
    在浏览器中调用WMP组件播放,很多本地WMP可以播放的都播放不了。
      

  7.   

    谢谢各位的帮助,我终于解决了,用户是本地管理员组的就行了(在服务安装以后重新配置).而Local system和System.ServiceProcess.ServiceAccount.LocalService都不行,可能是默认情况下解码器不允许这些用户访问,因为有可能不同的格式都有可能是不同的解码器,所以设置服务用户可以是最简单了.