加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WCF:运行服务器项目时的PlatformNotSupportedException

发布时间:2020-12-15 17:21:24 所属栏目:百科 来源:网络整理
导读:我提前道歉,因为太过模糊,如果你需要任何精确度,我会尽力给予它. 我编译了2个不同的WCF“代码项目”示例应用程序,无论我发布的是什么,我都会遇到以下异常,所以我猜我的机器上有一些配置错误: 编辑 我尝试了另一台机器(相同的操作系统,赢得7 64),它工作正常.
我提前道歉,因为太过模糊,如果你需要任何精确度,我会尽力给予它.

我编译了2个不同的WCF“代码项目”示例应用程序,无论我发布的是什么,我都会遇到以下异常,所以我猜我的机器上有一些配置错误:

编辑
我尝试了另一台机器(相同的操作系统,赢得7 64),它工作正常.
我只是无法弄清楚我的电脑上有什么配置错误或丢失.

{"Operation is not supported on this platform."}
at System.Net.HttpListener..ctor()
at System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
at System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
at System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
at System.ServiceModel.Channels.HttpChannelListener.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at WCFService.MainForm.startWCFServer() in D:xxxMainForm.cs:line 77

下面是代码.我猜没有什么不寻常的基本WCF东西.

private ServiceHost host = null;

    public void startWCFServer()
    {
            // Create the url that is needed to specify where the service should be tarted
            urlService = "net.tcp://" + "127.0.0.1" + ":8000/MyService";

            // Instruct the ServiceHost that the type that is used is a ServiceLibrary.service1
            host = new ServiceHost(typeof(ServiceLibrary.service1));
            host.Opening += new EventHandler(host_Opening);
            host.Opened += new EventHandler(host_Opened);
            host.Closing += new EventHandler(host_Closing);
            host.Closed += new EventHandler(host_Closed);

            // The binding is where we can choose what transport layer we want to use. HTTP,TCP ect.
            NetTcpBinding tcpBinding = new NetTcpBinding();
            tcpBinding.TransactionFlow = false;
            tcpBinding.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
            tcpBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
            tcpBinding.Security.Mode = SecurityMode.None; // <- Very crucial

            // Add endpoint
            host.AddServiceEndpoint(typeof(ServiceLibrary.IService1),tcpBinding,urlService);

            // A channel to describe the service. Used with the proxy scvutil.exe tool
            ServiceMetadataBehavior metadataBehavior;
            metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
            if (metadataBehavior == null)
            {
                // This is how I create the proxy object that is generated via the svcutil.exe tool
                metadataBehavior = new ServiceMetadataBehavior();
                //metadataBehavior.HttpGetUrl = new Uri("http://" + _ipAddress.ToString() + ":8001/MyService");
                metadataBehavior.HttpGetUrl = new Uri("http://" + "127.0.0.1" + ":8001/MyService");
                metadataBehavior.HttpGetEnabled = true;
                metadataBehavior.ToString();
                host.Description.Behaviors.Add(metadataBehavior);
                urlMeta = metadataBehavior.HttpGetUrl.ToString();
            }

            host.Open(); // <---- EXCEPTION BLOWS HERE

    }

细节 :
演示应用程序是here和here并删除了上述相同的异常
它可能是here所述的UAC问题但是这并没有解决我的问题.
操作系统是Windows 7 x64

提前致谢.

解决方法

这是您无权在给定地址创建服务主机时获得的消息.在您的情况下,您将使用NetTcpBinding获取此信息.以下是一些可能的解决方案 – 您只需要完成它们.

>另一个进程是使用相同的绑定 – TCP端口8000(IIS?)>您没有以管理员身份运行VS.NET>未安装Windows进程激活服务(WAS)(net.tcp绑定需要Windows功能)>未安装Windows Communication Foundation HTTP /非HTPP激活(.NET Framework 3.x下的Windows功能)>防火墙阻止Net.Tcp通信成功.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读