WCF初次部署问题集锦

为什么这么久才更新呢?不是说好一周一篇吗?
...............好吧,我不知道说什么......

这次还是按照问答的方式来展现,最后附上一个通用简单的配置文件


问题: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>
时间: 2024-12-28 17:59:32

WCF初次部署问题集锦的相关文章

WCF服务部署到IIS7.5

下面介绍如何把WCF服务部署到IIS: 为WCF服务创建.svc文件 我们知道,每一个ASP.NET Web服务都具有一个.asmx文本文件,客户端通过访问.asmx文件实现对相应Web服务的调用.与之类似,每个WCF服务也具有一个对应的文本文 件,其文件扩展名为.svc.基于IIS的服务寄宿要求相应的WCF服务具有相应的.svc文件,.svc文件部署于IIS站点中,对WCF服务的调用体 现在对.svc文件的访问上. .svc文件的内容很简单,仅仅包含一个ServiceHost指令(Direct

WCF服务部署IIS

一.将WCF服务部署到IIS上  [转载自简单笑容——http://www.cnblogs.com/skdsxx/p/5072726.html ] 1.首先检测电脑上是否安装了IIS,一般来说Win7以上系统自带IIS 2.下面进行IIS服务的开启设置 控制面板=>打开或关闭Windos功能 3.勾选该窗口中的Internet信息服务和Microsoft.NET Framework3.5.1标签,如下图所示 4.点击确定 5.右键桌面图标“计算机”=>管理=>服务和应用程序=>In

WCF学习之旅—WCF服务部署到IIS7.5(九)

四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以依靠IIS来管理宿主进程的生命周期.在开发和使用的过程与Web Service非常相似. 1) 为WCF服务创建.svc文件 对于ASP.NET Web Service的每个服务都具有一个.asmx文件,客户端通过访问.asmx文件实现对相应Web Service的调用.WCF服务与Web Service类似,每个WCF服务也具有一个对应的文 件,其

WCF Service部署在IIS上

环境vs2010,WCF应用程序.如何将WCF部署在IIS上. 第一步:右键点击项目,选择生成部署包. 第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署包所在的地方.在这个package文件夹下面有一个packageTmp. 第三步:在IIS上新建虚拟目录,将物理地址指向此文件夹. 第四部:部署结束.可以在浏览器中查看我们部署的WCF了.

WCF IIS 部署错误处理

做Web接口,原来一直用Web Service的,但是.Net 3.5后,Web Service变成了WCF.代码的编写上,把WebMethod特性改成了OperationContract,然后把方法分拆到契约接口和实现方法.然后在部署上,不再依赖于IIS,但如果使用IIS,部署反倒麻烦了. 将WCF应用程序代码拷贝到IIS目录下,然后打开IIS管理器,将其转换为Application.访问时出现了错误.protocolMapping配置节有问题. 原因在于,WCF是.Net3.5?的东西,我创

把WCF服务部署服务器IIS异常(详细:处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”)

详细:处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 原因: vs2010默认的是4.0框架,4.0的框架是独立的CLR,和2.0的不同,如果想运行4.0的网站,需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0的web项目了. 如何用aspnet_regiis注册4.0框架 : 方法如下,启动cmd (win键+R 启动cmd)  ,找到 4.0所在的目录,本人机器目录是 : 注意:

MVC部署 - 错误集锦

一.MVC部署后直接显示文件列表,路由未生效,效果如下: 处理方法为:Web.Config修改一下配置: <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules runAllManagedModulesForAllRequests="true" /> //增加此节点 </system.webServer>

WCF学习之旅—WCF服务部署到应用程序(十)

五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下图. (2)添加 System.ServiceModel.dll 的引用. (3)添加 WCF 服务类库(WcfServiceLib)的项目引用. (4)创建宿主程序,代码如下: using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel; using System.Serv

WCF IIS部署

创建WCFHost应用程序 Iservice.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.ServiceModel; 6 using System.ServiceModel.Description; 7 using System.Drawing; 8 namespace WCFHost 9 { 10 11 12 13