gpt4 book ai didi

c# - 不支持协议(protocol) 'net.tcp'

转载 作者:行者123 更新时间:2023-11-30 17:20:45 25 4
gpt4 key购买 nike

当我尝试浏览我的 service.svc 文件时,我不断收到此错误。

  1. 我默认启用了 tcpIIS 中的网站。
  2. 端口号 808:* 已经在我的 IIS 绑定(bind)中
  3. 我安装了 WAS 并支持非 http 协议(protocol)...
  4. TcpChannellistener 服务和 tcp端口共享服务正在运行..

但是,现在为什么我无法浏览该站点?一直显示“不支持‘net.tcp’协议(protocol)。”

这是我的代码...

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;
}

}
}

请帮帮我...

非常感谢

最佳答案

您需要为 uri 添加 TCP 端口。 HTTP 有一个默认端口,但 TCP 没有。

更新

net.tcp 默认没有安装在 IIS 上。通过添加/删除功能确保它已安装并检查 TCP 是否已勾选。

有 1001 种不同的设置必须正确。您需要有一个运行 4.0 的应用程序池,所以如果您还没有创建单独的应用程序池,请执行此操作并将其设置为 4.0 并让应用程序在其中运行。

转到站点的高级属性并在启用的协议(protocol)上输入“http, tcp”。

关于c# - 不支持协议(protocol) 'net.tcp',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4023182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com