我的金蝶k3 安装后打开后说中间服务不可用是什么意思,imts提示停止

我的金蝶k3 安装后打开后说中间服务不可用是什么意思,imts提示停止,第1张

请您参考如下 *** 作:
这是由于HR客户端平台无法获取到K/3中间层服务器的组织架构、帐套的相关信息
可能的解决方法有如下几种:
1、检查系统服务中,是否存在一个KDHRHost的服务,或此服务是否正常启动,如果没有此服务需要手工注册该服务,在开始-运行中直接输入 C:\WINDOWS\MicrosoftNET\Framework\v2050727\InstallUtilexe "C:\Program Files\Kingdee\K3ERP\KDHRAPP\IISServer\server\KingdeeK3HRServerexe"即可
2、如果KDHRHost服务正常,则检查IIS中是否存在一个K3HRWebService的虚拟目录,如果不存在则重新配置一下HR的web站点
3、如果虚拟目录也是正常,则再检查一个配置文件:"C:\Program Files\Kingdee\K3ERP\KDHRAPP\IISServer\server\KingdeeK3HRServerexeconfig"
用记事本打开KingdeeK3HRServerexeconfig这个配置文件,然后找到下面这段内容:
<!--webservice的路径 -->
<add key ="k3hrwebservice" value =">安装Winfows服务首先要添加安装程序,添加安装程序步骤如下:
1、将Windows服务程序切换到设计视图, 右击设计视图选择“添加安装程序”
2、切换到刚被添加的ProjectInstaller的设计视图
一般设置如下:
设置serviceInstaller1组件的属性:
1) ServiceName = 服务名称
2) StartType = Automatic ,即自动
设置serviceProcessInstaller1组件的属性
1) Account = LocalSystem,账户一般设置为本地系统
3、生成解决方案
安装服务:
方法一、使用DOS命令安装window服务
1、在服务所在的文件夹下的bin\debug文件夹下找到exe文件(例如WindowsService1exe)
将此文件拷贝到你想安装的文件夹中。
2、进入DOS界面
(VS2008-->Visual Studio Tools-->Visual Studio 2008 命令提示)来进入DOS,直接用cmd可能有些命令找不到;
3、输入
方法二、使用安装项目安装windows服务
个人比较推荐这个方法,选择目录安装更灵活,而且不用在DOS环境下运行。
因为本人比较懒,直接给出别人总结的地址
注意,以后每次服务项目有更改的时候,需要编译服务后,在安装项目中刷新依赖项!!!
方法三、
在ProjectInstallercs的后台代码中添加安装服务和卸载服务的代码
/// <summary>
/// 安装服务
/// </summary>
/// <param name="stateSaver"></param>
public override void Install(SystemCollectionsIDictionary stateSaver)
{
MicrosoftWin32RegistryKey system,
//HKEY_LOCAL_MACHINE\Services\CurrentControlSet
currentControlSet,
//\Services
services,
//\<Service Name>
service,
//\Parameters - this is where you can put service-specific configuration
config;
try
{
//Let the project installer do its job
baseInstall(stateSaver);
//Open the HKEY_LOCAL_MACHINE\SYSTEM key
system = MicrosoftWin32RegistryLocalMachineOpenSubKey("System");
//Open CurrentControlSet
currentControlSet = systemOpenSubKey("CurrentControlSet");
//Go to the services key
services = currentControlSetOpenSubKey("Services");
//Open the key for your service, and allow writing
service = servicesOpenSubKey(conServiceName, true);
//Add your service's description as a REG_SZ value named "Description"
serviceSetValue("Description", "描述语言");
//(Optional) Add some custom information your service will use
config = serviceCreateSubKey("Parameters");
}
catch (Exception e)
{
ConsoleWriteLine("An exception was thrown during service installation:\n" + eToString());
}
}
/// <summary>
/// 卸载服务
/// </summary>
/// <param name="savedState"></param>
public override void Uninstall(SystemCollectionsIDictionary savedState)
{
MicrosoftWin32RegistryKey system,
currentControlSet,
services,
service;
try
{
//Drill down to the service key and open it with write permission
system = MicrosoftWin32RegistryLocalMachineOpenSubKey("System");
currentControlSet = systemOpenSubKey("CurrentControlSet");
services = currentControlSetOpenSubKey("Services");
service = servicesOpenSubKey(conServiceName, true);
//Delete any keys you created during installation (or that your service created)
serviceDeleteSubKeyTree("Parameters");
//
}
catch (Exception e)
{
ConsoleWriteLine("Exception encountered while uninstalling service:\n" + eToString());
}
finally
{
//Let the project installer do its job
baseUninstall(savedState);
}
}
代码添加完成后
添加window service安装的批处理命令
1)在项目添加一个文本文件,更名为installbat,编辑文件的内容如下:
@echo off
C:\WINDOWS\MicrosoftNET\Framework\v2050727\InstallUtilexe -i "WindowsService1exe"
@pause
2)在项目添加一个文本文件,更名为uninstallbat,编辑文件的内容如下
@echo off
C:\WINDOWS\MicrosoftNET\Framework\v2050727\InstallUtilexe -u "WindowsService1exe"
@pause
说明:上面绿色字体为服务名称
编译完成后将debug的文件拷贝到想安装的目录下,点击installbat即完成安装。

1 新建一个项目,或者从选择当前解决方案--右键-添加--新建项目
2 选择(项目类型)Visual C#项目,(模板)Windows 服务,填写要创建的服务名称(修改默认的WindowService1成为你自己的服务名称),然后按确定按钮
3 资源管理器中默认创建一个WindowsService1的项目,项目下包括一个Service1cs文件
4 左侧选择"工具箱"--"组件",拖动一个Timer对象到Service1cs [设计]这个页面窗体上点击窗体上的Timers1足见,设置其属性:Interval属性数字N(例如200毫秒==1秒进行5次 *** 作)
5双击这个Timer1组件填加自己所需要的功能函数
private void timer1_Elapsed(object sender, SystemTimersElapsedEventArgs e)
{
//本机电脑硬件配置文件
string strFileName=@"c:\ComputerInfotxt";
string strTest="硬盘信息+显卡信息+主板信息+声卡信息+网卡信息+打印机信息";
//判断传送文件是否存在如果不存在则写入一行测试信息
if (!FileExists(strFileName))
{
FileCreateText(strFileName);
}
byte[] content=EncodingUTF8GetBytes(strTest);
//创建文本文件对象
FileStream fs=new FileStream(strFileName,FileModeOpenOrCreate,FileAccessReadWrite);
//文件中写入测试数据
fsWrite(content,0,contentLength);
//关闭文件对象
fsClose();
}
6添加完相应的函数代码后,从代码视图切换到设计视图,点鼠标右键选择“添加安装程序”
7 然后在当前项目资源管理器中会发现多了一个ProjectInstallercs文件,点击该文件打开ProjectInstallercs [设计]窗体会发现里面自动有两个组件"serviceProcessInstaller1"和"serviceInstaller1"
8 设置serviceInstaller1组件的属性:ServiceName = MyService(名字自己随意修改的)和 StartType = Automatic (开机自动运行方式)
9 设置serviceProcessInstaller1组件的属性:Account = LocalSystem
10 选择当前解决方案,设置方案属性中的"启动项目"为刚才所添加的项目名称按F5运行编译当前项目,会d出一个对话框"无法从命令行或者调试器启动服务, 必须首先安装Windows服务(使用installutilexe),然后用Server Explorer、Windows服务管理工具或NET START命令启动它"。错误没有关系,只要当前解决方案\项目文件夹\bin\Debug\文件夹下面多了一个EXE文件就好了
至此自己需要的服务基本 *** 作已经完成剩下来的就是编译注册启动服务了
11Windows服务器注册停止
打开CMD窗口--开始--运行--输入CMD,回车
注册服务命令
cd C:\WINDOWS\MicrosoftNET\Framework\v114322
InstallUtil D:\HardWareServerServiceexe
nets tart ComputerService
重新注册服务
cd C:\WINDOWS\MicrosoftNET\Framework\v114322
InstallUtil /u d:\HardWareServerServiceexe
从您的C# 解决方案下拷贝HardWareServerServiceexe文件到D盘HardWareServerServiceexe
InstallUtil D:\HardWareServerServiceexe
net start ComputerService
其中D:\HardWareServerServiceexe可以修改成"您当前的解决方案目录\项目名称\bin\Debug\HardWareServerServiceexe"
12启动刚注册服务: 显示桌面-在桌面上右击“我的电脑”,选择“管理”就可以打计算机管理

您好,这是由于HR客户端平台无法获取到K/3中间层服务器的组织架构、帐套的相关信息,同时,如果是要 *** 作K/3财务、供应链模块,是打开金蝶K3Wise创建管理平台或者是金蝶K/3标准版
以下是打开HR客户端平台提示中间层服务器不可用的分析方法:
1、检查系统服务中,是否存在一个KDHRHost的服务,或此服务是否正常启动,如果没有此服务需要手工注册该服务 ,在开始-运行中直接输入 C:\WINDOWS\MicrosoftNET\Framework\v2050727\InstallUtilexe "C:\Program Files\Kingdee\K3ERP\KDHRAPP\IISServer\server\KingdeeK3HRServerexe"即可
2、如果KDHRHost服务正常,则检查IIS中是否存在一个K3HRWebService的虚拟目录,如果不存在则重新配置一下HR的web站点
3、如果虚拟目录也是正常,则再检查一个配置文件:"C:\Program Files\Kingdee\K3ERP\KDHRAPP\IISServer\server\KingdeeK3HRServerexeconfig"
用记事本打开KingdeeK3HRServerexeconfig这个配置文件,然后找到下面这段内容:
<!-- webservice的路径 -->
<add key ="k3hrwebservi
ce" value =">1、在VS2010创建windows service工程,文件--新建--项目--windows服务,名称:TestWindowsService,设置server1的ServiceName属性为TestWindowsService 2、由于服务是要安装的,所以它运行的时候就需要一个安装类Installer将服务安装到计算机,新建一个后台服务安装类Install继承自Installer,安 装初始化的时候是以容器进行安装的,所以还要建立ServiceProcessInstaller和ServiceInstaller服务信息组件添加到 容器安装,在Install类增加如下代码: using System; using SystemCollectionsGeneric; //using SystemLinq; using SystemText; using SystemConfigurationInstall; using SystemComponentModel; namespace TestWindowsService { [RunInstaller(true)]//注意这里的属性Attribute设置 class Install : Installer { private SystemComponentModelIContainer components = null; private SystemServiceProcessServiceProcessInstaller spInstaller; private SystemServiceProcessServiceInstaller sInstaller; private void InitializeComponent() { components = new SystemComponentModelContainer(); // 创建ServiceProcessInstaller对象和ServiceInstaller对象 thisspInstaller = new SystemServiceProcessServiceProcessInstaller(); thissInstaller = new SystemServiceProcessServiceInstaller(); // 设定ServiceProcessInstaller对象的帐号、用户名和密码等信息 thisspInstallerAccount = SystemServiceProcessServiceAccountLocalSystem; thisspInstallerUsername = null; thisspInstallerPassword = null; // 设定服务名称 thissInstallerServiceName = "TestWindowsService"; sInstallerDisplayName = "后台Windows服务"; sInstallerDescription = "一个后台Windows运行的服务"; // 设定服务的启动方式 thissInstallerStartType = SystemServiceProcessServiceStartModeAutomatic; thisInstallersAddRange(new SystemConfigurationInstallInstaller[] { thisspInstaller, thissInstaller }); } } } 3、点击Service1cs的视图设计器,在“单击此处切换到代码视图”上右键--添加安装程序,就出现了ProjectInstallercs。 点击ProjectInstallercs--选择serviceInstaller1--设置ServiceName为TestWindowsService,StartType为Automatic。选择serviceProcessInstaller1--设置account为LocalSystem 点击运行--出现:“无法从命令行或调试器启动服务” 4、一个空的服务基本上搞定了,只是业务没有,就看怎么在服务器上安装部署了C#写的Windows后台服务不能直接安装,需要借助NET Framework里面的InstallUtilexe安装工具安装,我们可以做成一个执行CMD命令的文件BAT文件来安装启动它,命令如下: %windir%\MicrosoftNET\Framework\v2050727\InstallUtilexe �%\TestWindowsServiceexe 安装完成以后,我们可以在我的电脑管理服务里面看到才安装上的后台服务 5、卸载:找到开始--运行--regedit,找到目录下的TestWindowsService: 删除后重新启动就可以了。 6、C#获取服务程序路径string PathBase = SystemAppDomainCurrentDomainBaseDirectory; //-------------------另一种安装部署时添加注册表信息实现开机自启动------------------------ 使用VS自带的打包模块可以很方便的对项目进行打包部署,同时我们也可以在安装部署时 *** 作注册表实现开机启动软件。具体实现如下: 创建安装部署这部分就不用说了,添加安装部署项目后,鼠标右键安装项目->视图->注册表, 要使软件在开机就运行,可以在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run中 添加键值保存软件目录。在这里我们依次添加以上的项,然后在Run中添加键值,键名可以自己起,value要填软件的物理路径。物理路径是客户在部署确定 的,我们如何获取呢?这里我们可以使用[TARGETDIR]获取客户选择的路径,在加上软件的启动文件名称。比如软件启动文件的名称是 Clientexe,那么Value的值就为:[TARGETDIR]Clientexe生成安装项目。找到bin目录下的setupexe文件 运行,安装结束后我们可以在注册表中找到相应的键值。重启电脑系统就会自动运行我们设置的软件。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13469014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-13
下一篇 2023-08-13

发表评论

登录后才能评论

评论列表(0条)

保存