启动WCF WinService 报错

Color4days 2014-02-27 03:25:16
注册Win service 两个方式 1.VS CMD TOOL 2.InstallUtil

本机 WIN7 两种方式均可注册运行

Win Server 2008 R2 SP1 64(未安装VS) 用installutil 可以安装,但是无法运行,报错:
Error 1053:The service did not respond to the start or control request in a timely fashion

Win Server 2012 64(有安装VS), VS CMD TOOL 可正常注册运行, 但是用installutil 无法安装.

请问这是什么情况,肯定是跟环境有关的.
求大神指导!

谢谢~
...全文
283 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 treerootsplay 的回复:
[quote=引用 2 楼 chaoyangzhixue 的回复:] wcf无论采用是自主寄宿还是iis寄宿,启动报错都与数据库无关,wcf指向的数据库地址有没有提供服务,都能正常启动。楼主先把你的错误贴出来。
贴了. 在start的时候: Error 1053:The service did not respond to the start or control request in a timely fashion[/quote] 你贴这玩意,能看出来啥?
yanran_hill 2014-02-28
  • 打赏
  • 举报
回复
把你的Program.cs代码贴出来看看吧
Color4days 2014-02-28
  • 打赏
  • 举报
回复
引用 4 楼 yanran_hill 的回复:
installutil 需要你创建一个window service(就是系统服务),需要你写一个ServiceBase的子类,并重写OnStart(),OnStop()等方法,从你的显示结果来看,应该是OnStart()没有处理好
我本机是可以的,那台winserver 2010还是2012 也是OK的,win2008 就不行... private ServiceHost host = new ServiceHost(typeof(PCMService.PCMHelper)); public PCMWinSvcHost() { InitializeComponent(); } protected override void OnStart(string[] args) { host.Open(); } protected override void OnStop() { host.Close(); }
Color4days 2014-02-28
  • 打赏
  • 举报
回复
引用 2 楼 chaoyangzhixue 的回复:
wcf无论采用是自主寄宿还是iis寄宿,启动报错都与数据库无关,wcf指向的数据库地址有没有提供服务,都能正常启动。楼主先把你的错误贴出来。
贴了. 在start的时候: Error 1053:The service did not respond to the start or control request in a timely fashion
Color4days 2014-02-28
  • 打赏
  • 举报
回复
引用 1 楼 qiujialongjjj 的回复:
你是win764位的吧?
对啊 我本机是 WIN764 两台 server也都是64
yanran_hill 2014-02-28
  • 打赏
  • 举报
回复
installutil 需要你创建一个window service(就是系统服务),需要你写一个ServiceBase的子类,并重写OnStart(),OnStop()等方法,从你的显示结果来看,应该是OnStart()没有处理好
Color4days 2014-02-28
  • 打赏
  • 举报
回复
引用 12 楼 yanran_hill 的回复:
如果想调试的话,可以这样改一下program.cs

static void Main()
{
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[] 
    { 
        new PCMWinSvcHost() 
    };
    //ServiceBase.Run(ServicesToRun);
    ((PCMWinSvcHost)ServicesToRun[0]).OnStart(null);
    System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
    Console.In.ReadLine();
} 
一般情况下,配置参数错误,通信端口被占用等等,都会导致失败,如果要调试错误,可以这样改,把service变成控制台应用程序进行调试
搞好了,谢谢 我原来是 .net3.5 现在改成.net4.0 就好了.
Color4days 2014-02-28
  • 打赏
  • 举报
回复
引用 12 楼 yanran_hill 的回复:
如果想调试的话,可以这样改一下program.cs

static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new PCMWinSvcHost()
};
//ServiceBase.Run(ServicesToRun);
((PCMWinSvcHost)ServicesToRun[0]).OnStart(null);
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
Console.In.ReadLine();
}

一般情况下,配置参数错误,通信端口被占用等等,都会导致失败,如果要调试错误,可以这样改,把service变成控制台应用程序进行调试


谢谢你的回答,但是我的service是没有问题的, 因为在另外一台windows server 2012 上面可以注册运行,只不过用的是VS自带的CMD TOOL.
现在windows server 2008(没有装VS)用的 installutil,可以注册上 但是一点击运行就报错.
yanran_hill 2014-02-28
  • 打赏
  • 举报
回复
如果想调试的话,可以这样改一下program.cs

static void Main()
{
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[] 
    { 
        new PCMWinSvcHost() 
    };
    //ServiceBase.Run(ServicesToRun);
    ((PCMWinSvcHost)ServicesToRun[0]).OnStart(null);
    System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
    Console.In.ReadLine();
} 
一般情况下,配置参数错误,通信端口被占用等等,都会导致失败,如果要调试错误,可以这样改,把service变成控制台应用程序进行调试
Color4days 2014-02-28
  • 打赏
  • 举报
回复
引用 9 楼 chaoyangzhixue 的回复:
[quote=引用 6 楼 treerootsplay 的回复:]
[quote=引用 2 楼 chaoyangzhixue 的回复:]
wcf无论采用是自主寄宿还是iis寄宿,启动报错都与数据库无关,wcf指向的数据库地址有没有提供服务,都能正常启动。楼主先把你的错误贴出来。


贴了.
在start的时候:
Error 1053:The service did not respond to the start or control request in a timely fashion[/quote]
你贴这玩意,能看出来啥?[/quote]

错误就是报这个啊 就是在winservice点击开始的时候.报这个错.
事件里面错误信息如图:
Color4days 2014-02-28
  • 打赏
  • 举报
回复
引用 8 楼 yanran_hill 的回复:
把你的Program.cs代码贴出来看看吧
Program.cs 如下: static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new PCMWinSvcHost() }; ServiceBase.Run(ServicesToRun); }
feiyun0112 2014-02-27
  • 打赏
  • 举报
回复
看管理工具 -- 事件查看器 有没有详细错误

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
  • 打赏
  • 举报
回复
wcf无论采用是自主寄宿还是iis寄宿,启动报错都与数据库无关,wcf指向的数据库地址有没有提供服务,都能正常启动。楼主先把你的错误贴出来。
风一样的大叔 2014-02-27
  • 打赏
  • 举报
回复
你是win764位的吧?

110,538

社区成员

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

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

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