.net 无法启动承载具有NetNamedPipeBinding绑定的WCF服务的Windows服务

.net 无法启动承载具有NetNamedPipeBinding绑定的WCF服务的Windows服务,.net,wcf,windows-services,netnamedpipebinding,.net,Wcf,Windows Services,Netnamedpipebinding,我正在创建一个windows服务,它应该承载一个带有NetNamedPipeBinding绑定的WCF服务。代码如下: protected override void OnStart(string[] args) { var serviceType = typeof(IServeHi); var namedPipeBinding = new NetNamedPipeBinding(); namedPipeBinding.Security.Mode = NetNamedP

我正在创建一个windows服务,它应该承载一个带有NetNamedPipeBinding绑定的WCF服务。代码如下:

protected override void OnStart(string[] args)
{
    var serviceType = typeof(IServeHi);

    var namedPipeBinding = new NetNamedPipeBinding();
    namedPipeBinding.Security.Mode = NetNamedPipeSecurityMode.None;
    var namedPipeEndpoint = "";

    var baseNamedPipeUri = new Uri("net.pipe://MyWorkstation:51301/"); // Line # 41

    host = new ServiceHost(typeof(ServeHi), baseNamedPipeUri);

    host.AddServiceEndpoint(serviceType, namedPipeBinding, namedPipeEndpoint);

    host.Description.Behaviors.Add(new ServiceMetadataBehavior { HttpGetEnabled = true});
    host.Open();
}
installutil.exe能够成功安装它。但是,当我尝试启动该服务时,会收到一条消息,本地计算机上的WindowsServiceHost1启动,然后停止。如果某些服务未被其他服务或程序使用,则会自动停止

此外,Windows日志的内容如下:

Service cannot be started. System.UriFormatException: Invalid URI: The hostname could not be parsed.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
   at System.Uri..ctor(String uriString)
   at WindowsServiceHost1.WindowsServiceHost1.OnStart(String[] args) in C:\WindowsServiceHost1\Service1.cs:line 41
   at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

我尝试过WSHttpBinding和NetTcpBinding,它们工作得很好。

您需要从net.pipe URI中删除端口号。尝试将第41行更改为:

var baseNamedPipeUri = new Uri("net.pipe://MyWorkstation/");
或者,如果需要更具描述性的管道名称:

var baseNamedPipeUri = new Uri("net.pipe://MyWorkstation_51301/");

对此问题有一些有用的见解。

您需要从net.pipe URI中删除端口号。尝试将第41行更改为:

var baseNamedPipeUri = new Uri("net.pipe://MyWorkstation/");
或者,如果需要更具描述性的管道名称:

var baseNamedPipeUri = new Uri("net.pipe://MyWorkstation_51301/");
在这个问题上有一些有用的见解