Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS8在net.tcp上没有端点侦听:_C#_Wcf_Net.tcp_Iis 8 - Fatal编程技术网

C# IIS8在net.tcp上没有端点侦听:

C# IIS8在net.tcp上没有端点侦听:,c#,wcf,net.tcp,iis-8,C#,Wcf,Net.tcp,Iis 8,我在IIS8中有一个WCF服务主机,我想使用net.tcp绑定 我有以下配置: Web.config: <service behaviorConfiguration="MyBehavior" name="DecryptService.EmailCenterDecryptTCP"> <host> <baseAddresses> <add baseAddress="net.tcp://XX.XX.XX.XX:808/V

我在IIS8中有一个WCF服务主机,我想使用net.tcp绑定

我有以下配置:

Web.config:

<service behaviorConfiguration="MyBehavior"
  name="DecryptService.EmailCenterDecryptTCP">
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://XX.XX.XX.XX:808/VirtualFolder/Service.svc" />
      </baseAddresses>
    </host>

    <endpoint address=""
          binding="netTcpBinding"
          bindingConfiguration="portSharingBinding"
          name="MyServiceEndpoint"
          contract="ServiceNamespace.IService">
    </endpoint>

    <endpoint address="mextcp"
          binding="mexHttpBinding"
          bindingConfiguration=""
          name="MyServiceMexTcpBidingEndpoint"
          contract="IMetadataExchange" />
</service>
有什么想法吗? 谢谢,很抱歉我的英语不好

编辑:

我制作了一个运行ServiceHost的控制台应用程序来替换IIS,并使用此配置在internet上运行

var svh = new ServiceHost(typeof (Service));
svh.AddServiceEndpoint(typeof (ServiceNamespace.IService), new NetTcpBinding(SecurityMode.None), "net.tcp://serverLocalIp:808");
svh.Open();

Console.WriteLine("SERVER - Running...");
stopFlag.WaitOne();

Console.WriteLine("SERVER - Shutting down...");
svh.Close();

Console.WriteLine("SERVER - Shut down!");
你知道IIS在互联网上运行相同的服务有什么问题吗?在当地工作。
谢谢

您还需要设置IIS以接收Net.TCP连接

在IIS应用程序的
Advanced Settings
下,然后在
Enabled Protocols
下,确保您有
http,net.tcp
请注意,没有空间,如果有空间,它将失败


如果有一天你突然收到这个错误,它与另一个进程劫持net.tcp端口有关。我的情况是808端口。这是我在大约3天之后发现的——是的,这就是我现在所做的,用谷歌搜索并试图找出其他人的FUP,而不是我自己的工作

无论如何:


  • Net.TCP依赖于要运行的2个windows服务。转到服务,找到Net.Tcp侦听器适配器和Net.Tcp端口共享服务如果您没有看到它们,则此答案不适用于您。这意味着您尚未激活“控制面板”中的“打开或关闭Windows”功能。你会发现很多关于在线启用的信息
  • 停止Net.Tcp端口共享服务,并在停止其他服务弹出窗口中单击是
  • 重新启动这两个服务
  • 打开事件查看器>Windows日志>系统,查看是否在源列中看到SMSvcHost 4.0.0.0(您的版本可能不同)的任何错误。我有此错误:协议“net.tcp”的激活服务“nettcactivator”在尝试侦听站点“1”时出错,因此该站点的协议被临时禁用是的,谢谢你您启动了一项服务,但没有真正启动它,只是向事件查看器添加了一条消息?伟大的因为在windows服务启动时告诉我太难了,对吗?好吧,不管怎样,我们继续吧
  • 然后,我需要根据上面4中的错误,找出是什么在使用端口。因此,我运行了以下命令(您可能需要在管理模式下启动命令提示符。)
    • 运行netstat-ano | findstr“808”,并记下列中的数字。这些是使用端口的进程ID
    • 运行tasklist | 9,其中9将是上述步骤中的进程ID
  • 现在您已经知道了使用该端口的进程名称,您需要通过谷歌查找该进程的用途。在我的例子中,它与使用端口808:的英特尔图形驱动程序有关
  • 这是有道理的,因为其他进程已经在使用端口808,因此Net.TCP无法使用该端口


    在这一点上,我有两个选择:

  • 禁用该进程
  • 也许看看我能不能给它换个端口
  • 幸运的是,他们已经有了一个驱动程序的更新,所以我只是下载了它并从中安装了它


    重新启动,然后再次运行以下命令,以确保该端口可供net.tcp使用:

  • 运行netstat-ano | findstr“808”,并记下列中的数字。这些是使用端口的进程ID
  • 运行tasklist | 9,其中9将是上述步骤中的进程ID。现在您应该看到SMSvcHost.exe,这正是我们想要的


  • 简单回答,将IIS->编辑绑定->net.tcp下的端口号更改为其他内容。我把它改成12345,这就解决了我的问题

    这是一个与使用默认端口808的另一个进程相关的问题,如上面的文章所述。
    如果这没有帮助,请检查上面的答案和休耕过程。

    但如果我在“http,net.tcp”中有一个空格,即使本地调用也不会失败?我检查了IIS,一切都正常。。问题是,如果我从运行IIS8的同一台机器(localhost)调用服务一切正常,但当我在运行IIS的机器外调用同一个服务时,我发现这个错误听起来像是防火墙在阻止你。我使用ServiceHost创建了一个控制台应用程序,并在与IIS8相同的机器上运行它,使用自托管服务它可以工作。。。也许是地址?谢谢Yoshi。我花了很多时间来解决这个问题,但运气不好,你的答案解决了我的问题。我会要求问题的作者将此标记为答案,以便对其他人有所帮助。
    There was no endpoint listening at net.tcp://ZZ.ZZ.ZZ.ZZ/VirtualFolder/Service.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
    
    var svh = new ServiceHost(typeof (Service));
    svh.AddServiceEndpoint(typeof (ServiceNamespace.IService), new NetTcpBinding(SecurityMode.None), "net.tcp://serverLocalIp:808");
    svh.Open();
    
    Console.WriteLine("SERVER - Running...");
    stopFlag.WaitOne();
    
    Console.WriteLine("SERVER - Shutting down...");
    svh.Close();
    
    Console.WriteLine("SERVER - Shut down!");