C# NamedPipeBinding不工作

C# NamedPipeBinding不工作,c#,wcf,C#,Wcf,我试图在我的WCF服务中使用namedPipeBinding,但出现以下错误 <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" > <identity> <dns value="localhost"/> </i

我试图在我的WCF服务中使用namedPipeBinding,但出现以下错误

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>
不支持协议“net.pipe”

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>
描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>
异常详细信息:System.InvalidOperationException:不支持协议“net.pipe”

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>
我的web.config文件

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>
服务>

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>


我还在IIS的绑定部分添加了“net.pipe”。

添加windows激活服务非http协议失败

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>
控制面板->应用程序->windows组件

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>

您需要使用完整的iis。无法使用cassini(visual studio开发服务器)或IIS express。他们不支持管道

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>
如果您使用的是完整IIS,是否启用了net.pipe协议?右键单击站点、管理、高级设置和启用的协议。应以逗号分隔,无空格小写

          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>

例如,“http,net.pipe”是的,我使用的是完整的IIS,还启用了net.pipe协议,但仍然不起作用。同样的错误。@chandreshkoyani介意发布修复吗?将帮助那些有类似问题的人。@Kenneth Ito他没有安装activator,这是问题所在
          <endpoint address="soap" binding="basicHttpBinding" contract="PipeTest.ICalculatorService" >


              <identity>
                  <dns value="localhost"/>
              </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

          <endpoint address="net.pipe://localhost" binding="netNamedPipeBinding" contract="PipeTest.ICalculatorService"  />

      </service>
  </services>