当尝试在客户端应用程序中添加URL(net.tcp:// localhost:8000 / UserManagement)时,我收到错误:
Metadata contains a reference that cannot be resolved:
‘net.tcp://localhost:8000/UserManagement’. Could not connect to
net.tcp://localhost:8000/UserManagement. The connection attempt lasted
for a time span of 00:00:00.9531433. TCP error code 10061: No
connection Could be made because the target machine actively refused
it 127.0.0.1:8000. No connection Could be made because the target
machine actively refused it 127.0.0.1:8000 If the service is defined
in the current solution,try building the solution and adding the
service reference again.
Service.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.ServiceModel; using System.ServiceProcess; using System.Configuration; using System.Configuration.Install; namespace AddUser { public class UserManagement : IUserManagement { public bool AddUser(string strName,DateTime dtdob,string strGender,string strRole) { return true; } } [ServiceContract] public interface IUserManagement { [OperationContract] bool AddUser(string strLname,string strFName,string strUname,string strPswd,string strRole,string strHobbies); } public class UserManagementService : ServiceBase { public ServiceHost serviceHost = null; public UserManagementService() { ServiceName = "WCFUserManagementService"; } public static void Main() { ServiceBase.Run(new UserManagementService()); } protected override void OnStart(string[] args) { if (serviceHost != null) { serviceHost.Close(); } serviceHost = new ServiceHost(typeof(UserManagementService)); serviceHost.open(); } protected override void OnStop() { if (serviceHost != null) { serviceHost.Close(); serviceHost = null; } } } [RunInstaller(true)] public class ProjectInstaller : Installer { private ServiceProcessInstaller process; private ServiceInstaller service; public ProjectInstaller() { process = new ServiceProcessInstaller(); process.Account = ServiceAccount.LocalSystem; service = new ServiceInstaller(); service.ServiceName = "WCFUserManagementService"; Installers.Add(process); Installers.Add(service); } } }
的app.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service behaviorConfiguration="AddUser.UserManagementServiceBehavior" name="AddUser.UserManagement"> <endpoint address="" binding="netTcpBinding" contract="AddUser.IUserManagement"/> <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> <host> <baseAddresses> <add baseAddress="net.tcp://localhost:8000/UserManagement" /> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="AddUser.UserManagementServiceBehavior"> <serviceMetadata httpGetEnabled="false"/> <serviceDebug includeExceptionDetailInFaults="False"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration>
解决方法
net.tcp://localhost:8000/UserManagement/mex
在配置服务引用时.
或者,您的元数据端点应使用mexHttpBinding,您应该在服务行为中将httpGetEnabled设置为true
<serviceMetadata httpGetEnabled="true"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。