62,054
社区成员
发帖
与我相关
我的任务
分享
public class WcfServiceFactory : ServiceHostFactory
{
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
ServiceHost host = new ServiceHost(serviceType, baseAddresses);
foreach (Uri address in baseAddresses)
{
//WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
BasicHttpBinding b = new BasicHttpBinding();
b.Name = serviceType.Name;
host.AddServiceEndpoint(serviceType.GetInterfaces()[0], b, address);
}
return host;
}
[ServiceContract]
public interface ICompany
{
[OperationContract]
IEnumerable<Company> GetAllCompanies();
}
public class CompanyService : ICompany
{
public IEnumerable<Company> GetAllCompanies()
{
return new List<Company>()
{
new Company{ CompanyId = 1, CompanyName ="company 1", Email="company1@126.com"},
new Company{CompanyId = 2, CompanyName = "company 2", Email="company2@126.com"}
};
}
}
[DataContract]
public class Company
{
[DataMember]
public int CompanyId { get; set; }
[DataMember]
public string CompanyName { get;set;}
[DataMember]
public string Email { get;set;}
}
<system.serviceModel>
<!--省略部分-->
<services>
<!--<service name="WcfService.User">
<endpoint address="" binding="basicHttpBinding" contract="WcfService.IUser" />
</service>-->
<service name="WcfService.CompanyService">
<endpoint address="http://localhost:5166/Company" binding="basicHttpBinding" contract="WcfService.ICompany" />
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
<serviceActivations>
<add factory="WcfService.Services.WcfServiceFactory" service="WcfService.CompanyService" relativeAddress="Company.svc" />
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>