WCF IIS 部署错误处理

做Web接口,原来一直用Web Service的,但是.Net 3.5后,Web Service变成了WCF。代码的编写上,把WebMethod特性改成了OperationContract,然后把方法分拆到契约接口和实现方法。然后在部署上,不再依赖于IIS,但如果使用IIS,部署反倒麻烦了。

将WCF应用程序代码拷贝到IIS目录下,然后打开IIS管理器,将其转换为Application。访问时出现了错误。protocolMapping配置节有问题。

原因在于,WCF是.Net3.5?的东西,我创建的WCF应用是.Net4.5,而转换为的Application,使用默认的应用程序池,其使用的.net框架为2.0。因此2.0无法解析protocolMapping配置节。

针对此情况,新建4.0的应用程序池(管道模式要使用集成,不可以是经典模式),因为服务器是2008R2,所以IIS是7.5,所以.Net框架是4.0,所以把WCF应用更改为4.0,然后重新编译,然后修改应用程序池。

然后访问报以下错误。网上查找答案,有部署SilverLight遇到类似的问题。但是配置目录权限(给IISUser甚至是匿名用户添加了FullControl的权限)后,仍然没有效果。

This error can be caused by a virtual directory not being configured as an application in IIS.

后来睁大眼睛,终于看到了这一句,哎,其实人家提醒的明明白白,为什么自己这么糊涂。问题在于虚拟目录(可以理解为应用程序所在目录)没有被配置为应用程序。

我创建了一个解决方案,其中包含几个类库以及WCF服务,后来将解决方案目录转换为应用程序,然后浏览,然后找到了服务,点击报错,问题在于WCF服务项目的目录没有被转换,正确的是转换WCF服务。

Server Error in ‘/xxx‘ Application. --------------------------------------------------------------------------------

Configuration Error Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: It is an error to use a section registered as allowDefinition=‘MachineToApplication‘ beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.

Source Error:

Line 20:       <add binding="basicHttpsBinding" scheme="https"/> Line 21:     </protocolMapping> Line 22:     <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> Line 23:   </system.serviceModel> Line 24:   <system.webServer>

Source File: C:\inetpub\wwwroot\xxx\billion.wcf\web.config    Line: 22

-------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929

时间: 2024-07-29 06:32:07

WCF IIS 部署错误处理的相关文章

IIS部署错误解决集合

 1.ASP.NET State Service 服务启动失败,如下提示: window无法启动asp.net state service 服务(位于 本地计算机 上) 错误:0x8007277a 解决方法:命令行(CMD)中输入netsh winsock  reset 2.IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法      IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrlHandler

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

IIS部署WCF

IIS部署WCF [转载自——http://www.cnblogs.com/starksoft/p/4992059.html] 1 部署IIS 1.1 安装WAS IIS原本是不支持非HTTP协议的服务,为了让IIS支持net.tcp,必须先安装WAS(Windows Process Activation Service),即windows进程激活服务. 打开控制面板--程序和功能--打开或关闭windows功能,安装WAS,如图: 安装完毕后在Services窗口中可以到到如下服务:Windo

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

IIS部署ASP.NET MVC (4.0)网站出现的错误

(1)无法读取配置节“system.web.extensions”,因为它缺少节声明 在IIS中,在基本设置中,将程序池选择为ASP.NET 4.0即OK! (2)由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面 第一步,检查: 出现环境:win7 + IIS7.0 解决办法:IIS的根节点->右侧“ISAPI和CGI限制”->把禁止的DotNet版本项设置为允许,即可~ 第二步:检查4.0的aspnet_isapi.dll文件是否已添加,如果没有点击右键

IIS部署MVC应用程序时遇到错误403.14

用IIS部署MVC应用程序时遇到错误403.14,并且同学说试遍了网上的所有方法都没用 然后我下午还很执著地试了网上很多种方法都失败了. 然后查看了基本设置 就一直以为是授权问题,继续在网上找方法,说要登录 然后就一直提示密码错误,但是明明密码是对的.继续找答案. 修改了web.xml 但是并没有什么用,查了很多资料,偶然间翻到一个教程说要添加映射步骤如下 功能视图-->IIS-->处理程序映射 添加脚本映射 但是报错 解决这个错误的方法是启用windows功能,Internet Inform

WCF初次部署问题集锦

为什么这么久才更新呢?不是说好一周一篇吗?...............好吧,我不知道说什么...... 这次还是按照问答的方式来展现,最后附上一个通用简单的配置文件 问题:HTTP 错误 500.19 - Internal Server Error,无法读取配置节"protocolMapping",因为它缺少节声明.解决:Web.config文件中有protocolMapping节点, 发现在IIS部署时使用了.NET 2.0的应用程序池. 将其改为使用.NET 4.0的AppPoo

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服务部署到IIS7.5

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