1

我无法让服务器 2012 iis 托管 net.tcp。

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

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

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

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

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

我创建了一个新的 Server 2008R2/VS2012 virt,上面的步骤没有问题。

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

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

Server2012有什么特别的事情要做吗?

4

2 回答 2

2

找了一天,终于找到了。我猜这是 server2012 和 IIS8 的另一个已知问题

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

于 2013-05-20T20:14:17.310 回答
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-重复第一步并检查您的服务是否正在侦听端口。

于 2013-05-20T19:31:16.753 回答