gpt4 book ai didi

c# - 在 Windows 服务中安装和运行 WCF 服务

转载 作者:行者123 更新时间:2023-12-02 01:12:14 25 4
gpt4 key购买 nike

我不是 C# 或 .NET 专家。但是,我必须使用它...

我正在运行 InstallUtil.exe MyService.exe 以安装本质上运行 WCF 服务的 Windows 服务。我已经定义了 WFC 接口(interface)并实现了它。下面是界面。

[ServiceContract(Namespace = "http://WCFService", Name = "WCFService")]
public interface IWCFService
{
[OperationContract]
User Login(string userName, string password);

[OperationContract]
List<Project> GetProjects(Guid userGuid);

[OperationContract]
List<Stylesheet> GetStylesheets(Guid projectGuid);

}

我还定义了一个 Windows 服务如下:

public partial class Service: ServiceBase
{
public FlatWsdlServiceHost m_fwsh = null; // extends ServiceHost

public DesignerService()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{

this.EventLog.WriteEntry("OnStart Successfull", EventLogEntryType.Information);

if (m_fwsh != null)
{
m_fwsh.Close();
}

// Create a ServiceHost for the EventWebService type and
// provide the base address.
Uri localUri= new Uri("http://localhost:7777/");
m_fwsh = new FlatWsdlServiceHost(typeof(WCFService), localUri);

// Open the ServiceHostBase to create listeners and start
// listening for messages.
m_fwsh.Open();
}

protected override void OnStop()
{
//base.OnStop();

if (m_fwsh != null)
{
m_fwsh.Close();
m_fwsh = null;
}
}

protected override void OnPause()
{
base.OnPause();
}
}

当我运行 InstallUtil.exe MyService.exe 时,日志显示:

Installing assembly 'MyService.exe'.
Affected parameters are:
logtoconsole =
logfile = MyService.InstallLog
assemblypath = MyService.exe
No public installers with the RunInstallerAttribute.Yes attribute could be found in the MyService.exe assembly.
Committing assembly 'MyService.exe'.
Affected parameters are:
logtoconsole =
logfile = MyService.InstallLog
assemblypath = MyService.exe
No public installers with the RunInstallerAttribute.Yes attribute could be found in the MyService.exe assembly.
Remove InstallState file because there are no installers.

另外,我有一个 ProjectInstaller.cs,它初始化 serviceInstaller1 和 serviceProcessInstaller1。在添加 WCF 服务之前,Windows 服务安装正常并将“OnStart Successfull”消息写入 Windows 日志。

非常感谢任何帮助或建议。

最佳答案

你需要这样的类(class):

// Provide the ProjectInstaller class which allows 
// the service to be installed by the Installutil.exe tool
[RunInstaller(true)]
public class ProjectInstaller : Installer
{
private ServiceProcessInstaller process;
private ServiceInstaller service;

public ProjectInstaller()
{
process = new ServiceProcessInstaller();
process.Account = ServiceAccount.LocalSystem;
service = new ServiceInstaller();
service.ServiceName = "WCFWindowsServiceSample";
Installers.Add(process);
Installers.Add(service);
}
}

完整教程在MSDN

关于c# - 在 Windows 服务中安装和运行 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16044205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com