尝试从IIS中托管的Web应用程序连接到具有命名管道端点的WCF服务时,没有端点侦听错误

时间:2016-05-25 10:29:56

标签: c# wcf iis asp.net-core-mvc

尝试从IIS中托管的网站连接到具有命名管道端点的WCF服务时,我没有收到端点侦听错误。

net.pipe:// {machinename} / {ServiceName}上没有可以接受该消息的端点。这通常是由错误的地址或SOAP操作引起的。有关详细信息,请参阅InnerException(如果存在)。

我会解释一下设置。 WCF服务托管在从WinForms应用程序生成的后台进程中。这是出于测试目的,后台进程将由Windows Service在生产中启动。 Web站点通过管道端点连接到在同一台机器上运行的WCF服务。 Web应用程序是在Windows 10上的IIS中托管的ASP MVC Core。

Web应用程序在Visual Studio(VS2015)中运行IIS Express时连接到服务,但在IIS中托管时失败。这看起来像网站的某些权限问题所以我尝试运行具有管理员权限和应用程序池标识的用户下的Web应用程序,但没有运气使用它。

WCF服务托管代码是

_serviceHost = new ServiceHost(typeof(Serviceprovider));

_serviceHost.AddServiceEndpoint(
         typeof(IServiceprovider),
         new NetNamedPipeBinding
         {
                 ReceiveTimeout = TimeSpan.MaxValue,
         },
         "net.pipe://" + System.Environment.MachineName + "/Serviceprovider");

_serviceHost.Faulted += new EventHandler(ServiceHostFaulted);
_serviceHost.Open();    

Program.cs(Web项目)

var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

之前是否有人遇到此问题或有任何建议?

1 个答案:

答案 0 :(得分:0)

似乎您必须配置IIS以使用管道。检查this issue。如果使用经典模式,您还可以尝试将应用程序池设置为集成模式。