我不是 C# 或 .NET 专家。但是,我必须使用它...
我正在运行InstallUtil.exe MyService.exe
安装实质上运行 WCF 服务的 Windows 服务。我已经定义了 WFC 接口并实现了它。下面是界面。
[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 Successl”消息写入 Windows 日志。
非常感谢任何帮助或建议。