平台兼容性问题:服务程序中调用外部的应用程序时,win7正常,win10出现异常

我的益达快过期 2016-07-17 10:36:18
服务程序中有一段调用外部程序的代码,win7调试的时候,是正常运行,但是在XP和win10上,调用的外部程序并不运行,而且有很多异常。截图大家看看,是不是平台兼容性问题导致的,有人碰到过么,怎么解决的
...全文
516 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
排除权限的问题很简单,你将你的服务部署为System角色的系统服务,基本上不会再受权限的干扰
  • 打赏
  • 举报
回复
你先确认调用的那程序在XP和win10上能正常跑?比如手动能运行?
Theflybird 2016-07-19
  • 打赏
  • 举报
回复
你的win10和xp是多少位的跟win7位是不是一样?
drifter2002 2016-07-19
  • 打赏
  • 举报
回复
同楼上,权限问题可能性大。以管理员身份运行,相关文件资源的权限手工也设置一下Everyone。
圣殿骑士18 2016-07-17
  • 打赏
  • 举报
回复
我想权限问题的可能性较大
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
调试,不是说你来贴这些。 比如说你调试一个 abc 对象的 Name 属性,那么你就调试 Name 属性就可以了。这时候重点在在于你的程序用到的东西。如果你把 abc 在调试器上其它50个属性中有10个“异常”,有什么意义啊? 先从头重新思考自己如何学编程吧。这样就能比较有效率地搞开发。
您说的很有道理,我现在遇到的问题是Process这个类引发的异常,只有在调用外部程序的时候执行的那一句,我怎么分属性调试。。。
  • 打赏
  • 举报
回复

try
            {
                ProcessStartInfo startInfo = new ProcessStartInfo(this.abCall);
                string str = string.Format(this.abcallStringfile, mobf, file);
                startInfo.Arguments = str;
                startInfo.CreateNoWindow = true;
                startInfo.RedirectStandardOutput = true;
                startInfo.RedirectStandardInput = true;
                startInfo.UseShellExecute = false;
                Process process = Process.Start(startInfo);
                StreamReader standardOutput = process.StandardOutput;
                standardOutput.ReadLine();
                while (!standardOutput.EndOfStream)
                {
                    standardOutput.ReadLine();
                }
                process.WaitForExit();
                process.Close();
                standardOutput.Close();
            }
            catch (Exception exception)
            {
                this.EventLog.WriteEntry("Sequence =>" + file + "=>" + exception.Message);
            }

就是 Process process = Process.Start(startInfo);运行后,会产生异常
  • 打赏
  • 举报
回复
调试,不是说你来贴这些。 比如说你调试一个 abc 对象的 Name 属性,那么你就调试 Name 属性就可以了。这时候重点在在于你的程序用到的东西。如果你把 abc 在调试器上其它50个属性中有10个“异常”,有什么意义啊? 先从头重新思考自己如何学编程吧。这样就能比较有效率地搞开发。
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
不要贴这种图。如果你创建一个复杂对象,它有100个属性、方法,难道你要把每一个方法、属性都调用一遍才算是确实用个了这个对象一回? 你若这种图,就是说把该调用的、不该调用的,都调用了一遍。这显然是障眼法,是糊弄自己的。 就贴你的代码实际调用的方法、属性。 做一个程序员它是调试、测试程序,知道有所为有所不为,知道哪些东西是烦扰。而不是胡乱地把无关的东西都认为对自己有障碍。
好的,受教了
  • 打赏
  • 举报
回复
折腾了一个星期,还是没有结果,在事件查看器里,也没有这个服务的错误信息,但是就是无法再win10上调用外部程序
  • 打赏
  • 举报
回复
不要贴这种图。如果你创建一个复杂对象,它有100个属性、方法,难道你要把每一个方法、属性都调用一遍才算是确实用个了这个对象一回? 你若这种图,就是说把该调用的、不该调用的,都调用了一遍。这显然是障眼法,是糊弄自己的。 就贴你的代码实际调用的方法、属性。 做一个程序员它是调试、测试程序,知道有所为有所不为,知道哪些东西是烦扰。而不是胡乱地把无关的东西都认为对自己有障碍。
  • 打赏
  • 举报
回复
还有一个问题就是,win7下正常运行,用CMD里的 sc delete servicename,可以删除停止服务,用net stop 也行,但是在win10上面,就会提示无法进行此操作
  • 打赏
  • 举报
回复

网上搜了一些相关的异常,都是web服务才会有这样的问题,但是我的服务程序就是本地的,是权限问题?但是服务程序就是在System下,应该是最高权限了吧,我也在网上查了提高权限的方法,加了manifest,也没有解决问题。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧