net.tcp在服务器2012中不再有效

时间:2013-05-20 15:40:52

标签: c# wcf windows-server-2012

我无法获得服务器2012 iis来托管net.tcp。

在服务器2008R2 / VS2012中没有问题

在server2012 / VS2012中,当我点击wdsl时,我首先收到“协议'net.tcp'没有注册的HostedTransportConfiguration类型的实现。”,然后如果我点击刷新我得到“具有相同密钥的项目具有已被添加。“

如果“服务无法打开其IChannelListener”,则来自TraceViewer的错误

但是我已经在默认网站上设置了Bindings(必须使用命令行,因为如果在网格中编辑net.tcp会抛出异常,这是一个已知问题)

我已将应用程序级别的绑定设置为http,net.tcp,创建了一个具有网络服务标识的新AppPool,并使用findPrivateKey为其授予权限。

我创建了Server 2008R2 / VS2012的新版本,并且没有遇到上述步骤的问题。

编辑服务器2012的附加说明
添加角色和功能:
已验证以下安装:
Web服务器 - 应用程序开发:所有已检查但CGI和ASP(经典)
.NET Framework 3.5功能:全部已检查
Windows进程激活服务:全部已检查
IIS:默认网站:bindings net.tcp 8081:

IIS:默认网站 - >高级设置 - >启用协议:http,net.tcp
IIS:默认网站\服务 - >高级设置 - >启用协议:http,net.tcp

Server2012有什么特别之处吗?

2 个答案:

答案 0 :(得分:2)

经过一天的搜索,终于找到了它。我想这是server2012&的另一个已知问题。 IIS8

http://support.microsoft.com/kb/2803161

答案 1 :(得分:0)

您可以尝试以下提示:

1 - 打开命令提示符(以管理员身份)并运行: netstat -ona

检查您的服务是否正在侦听您的服务器端口。

示例:您的端点是net.tcp:// localhost:8015 / MyService。所以运行上面的命令,你会看到一个项目: TCP 127.0.0.1:8015 0.0.0.0 LISTENING

2 - 如果您的服务没有收听,请创建一个控制台应用并自行托管您的服务。 例如:

using System.ServiceModel.ServiceHost;
public class Sample
{
    ServiceHost host = new ServiceHost(typeof(MyService));

public static void Main()
{
        host.Open();

        Console.WriteLine("listening...");

        Console.Read();

        host.Close();
    }
}

3 - 重复第一步,检查您的服务是否正在侦听端口。