当我尝试浏览我的service.svc文件时,我不断收到此错误。协议'net.tcp'不支持
- 我已经在IIS的默认 网站中启用了tcp。
- 端口号808:*为已经 有我的IIS绑定
- 伊夫安装WAS和 非HTTP协议的支持...
- TcpChannellistener服务和TCP端口 共享服务正在运行...
但是,现在为什么我无法浏览网站?它一直显示“The protocol'net.tcp'不受支持。”
这里是我的代码...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Web.Services.Description;
using System.ServiceModel.Description;
using System.ServiceModel.Channels;
using System.IO;
namespace WcfService7
{
public class clsMyOwnServiceHost:ServiceHostFactory
{
protected override ServiceHost CreateServiceHost(Type t, Uri[] baseAddresses)
{
NetTcpBinding tcpbinding = new NetTcpBinding(SecurityMode.None);
BasicHttpBinding basicbinding = new BasicHttpBinding(BasicHttpSecurityMode.None);
WSHttpBinding wsbinding = new WSHttpBinding(SecurityMode.None);
baseAddresses = new Uri[] { new Uri("http://localhost/WcfService7/Service1.svc"),new Uri("net.tcp://localhost/WcfService7/Service1.svc/tcp") };
ServiceHost host = new ServiceHost(t, baseAddresses);
baseAddresses.ToList().ForEach(uri =>
{
//ServiceMetadataBehavior metabehavior = new ServiceMetadataBehavior();
//metabehavior.HttpGetEnabled = true;
// host.Description.Behaviors.Add(metabehavior);
if (uri.AbsoluteUri.Contains("http://")) host.AddServiceEndpoint(typeof(IService1), basicbinding, "basic");
if(uri.AbsoluteUri.Contains("net.tcp://")) host.AddServiceEndpoint(typeof(IService1),tcpbinding,"tcp");
if(uri.AbsoluteUri.Contains("http://")) host.AddServiceEndpoint(typeof(IService1), wsbinding, "ws");
if (uri.AbsoluteUri.Contains("http://")) host.AddServiceEndpoint(typeof(IService1), MetadataExchangeBindings.CreateMexHttpBinding(), "mex");
});
return host;
}
}
}
请帮我...
非常感谢
什么版本的IIS你? IIS6不以任何方式支持net.tcp,形状或形式 - 您必须自行托管。 IIS7/7.5支持net.tcp,但它需要手动激活 – 2010-10-26 11:51:42
我使用IIS7和TCP被激活 – dotnetgeek 2010-10-29 05:11:20