为什么这么久才更新呢?不是说好一周一篇吗?
...............好吧,我不知道说什么......
这次还是按照问答的方式来展现,最后附上一个通用简单的配置文件
问题:HTTP 错误 500.19 - Internal Server Error,无法读取配置节“protocolMapping”,因为它缺少节声明。
解决:Web.config文件中有protocolMapping节点, 发现在IIS部署时使用了.NET 2.0的应用程序池. 将其改为使用.NET 4.0的AppPool后正常
问题:HTTP 错误 404.3 - Not Found,由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
解决:打开“cmd”命令工具行,输入“cd c:\windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\”,然后输入“ServiceModelReg -i”,检测和重新安装
问题:HTTP 错误 500.21 ,在这个"svc-Integrated"处理器列表有一个错误的模块"ManagedPipelineHandler"
解决:打开“Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts”下的命令提示程序,32位系统打开32位,64位系统打开64位。输入“aspnet_regiis.exe -iru”,然后安装
原因:这个问题通常发生在先装visualstudio后装IIS的WCF HTTP 激活模块,如果先装IIS后装visualstudio则不会发生这个问题。
WCF配置文件
原文链接:http://www.cnblogs.com/iamlilinfeng/archive/2012/10/02/2710224.html
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<!--服务-->
<services>
<!--name:名称空间.类型名-->
<!--behaviorConfiguration:behavior的名称,请看behavior配置节的名称-->
<service name="WCFLibrary.User" behaviorConfiguration="MyBehavior">
<host>
<baseAddresses>
<!-- 每种传输协议的baseAddress,用于跟使用同样传输协议Endpoint定义的相对地址组成完整的地址,
每种传输协议只能定义一个baseAddress。HTTP的baseAddress同时是service对外发布服务说明页面的URL -->
<add baseAddress="http://localhost:8732/Design_Time_Addresses/WCFLibrary/Service/"/>
</baseAddresses>
</host>
<!-- 除非完全限定,否则地址将与上面提供的基址相关,每个服务可以有多个Endpoint -->
<!-- Address:指定这个Endpoint对外的URI,这个URI可以是个绝对地址,也可以是个相对于baseAddress的
相对地址。如果此属性为空,则这个Endpoint的地址就是baseAddress-->
<!--bindingConfiguration:binding的名称,请看binding配置节的名称-->
<endpoint address="" binding="wsHttpBinding" contract="WCFLibrary.IUser" bindingConfiguration="myHttpBinding">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- 此终结点不使用安全绑定,应在部署前确保其安全或将其删除-->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<!--绑定-->
<bindings>
<wsHttpBinding>
<binding name="myHttpBinding">
<security mode="None">
<message clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<!--行为-->
<behaviors>
<serviceBehaviors>
<behavior name="MyBehavior">
<!-- httpGetEnabled - bool类型的值,表示是否允许通过HTTP的get方法获取sevice的WSDL元数据 -->
<serviceMetadata httpGetEnabled="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>