Windows server
1.把WCF服务里面的配置文件复制到windows应用程序里面
2.用工具installutil 添加服务(installutil+生成的windows exe路径)
3.用工具wcftestclient 测试服务(wcftestclient+配置文件中baseAddress值)
问题:
一、类库调用服务:
问题一: 客户端调用时“客户端配置部分中,找不到引用协定“
答案:把类库中app.config 的<system.serviceModel>节点复制到项目webconfig 里面。
问题二:客户端调用时“已超过传入消息(65536)的最大消息大小配额”
答案:客户端把web.config中bingding节点中maxReceivedMessageSize属性值改大。
问题三:客户端调用时“通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为其处于“出错”状态“
答案:把WCF服务的bingding属性值改成 wsHttpBinding
问题四:调用方未由服务器进行身份验证
答案:
服务器webconfig端配置文件,红色部分为添加部分
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="NoneSecurity"
maxBufferPoolSize="12000000" maxReceivedMessageSize="12000000" useDefaultWebProxy="false">
<readerQuotas maxStringContentLength="12000000" maxArrayLength="12000000"/>
<security mode="None"/>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="WcfService2.Service1" behaviorConfiguration="WcfService2.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="NoneSecurity" contract="WcfService2.IService1">
<!--
部署时,应删除或替换下列标识元素,以反映
在其下运行部署服务的标识。删除之后,WCF 将
自动推导相应标识。
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfService2.Service1Behavior">
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点-->
<serviceMetadata httpGetEnabled="true"/>
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息-->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
客户端将security配置改为<security mode="None"/>
谨代表个人见解,欢迎补充指正,共同进步