如何部署用.net framework 4.5 写的wcf
2个回答
展开全部
写好代码,准备部署wcf到iis时,首先遇到第一个问题
1.HTTP 错误 404.3 - Not Found
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
1. wcf 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序
解决方法: 网上说注册iss aspnet_iis ,结果在我这行不通,然后我在启用或关闭windows 功能中发现 .NET Framework 4.5 中的Http激活没有打勾,于是打上勾,这个问题就解决了
紧接着出现下面一个问题:
2. 无法激活服务,因为它不支持 ASP.NET 兼容性
错误提示:无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性。请在 web.config 中关闭 ASP.NET 兼容性模式或将 AspNetCompatibilityRequirements 属性添加到服务类型且同时将 RequirementsMode 设置为“Allowed”或“Required”。
解决方法:
默认情况下ASP.NET兼容性支持是关闭的,但很多时候需要打开Asp.Net的兼容性来利用Asp.Net的一些特性(使用session,上下文等)
如果要打开兼容性,需要做两步:一是在服务类加上如下标记:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class AppRuntimeStateSvc : IAppRuntimeStateSvc
{
//服务代码.
}
二是在web.config中的<system.serviceModel>段里加:
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
注意框架3.5以前都是默认就支持的,4.0以后默认就是没有打开兼容性支持的.
然后出现最后一个问题:
3. 如果在配置中将“system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled”设置为 true,则需要终结点指定相对地址。如果在终结点上指定相对侦听 URI,则该地址可以是绝对地址。若要解决此问题,请为终结点“http //localhost/Service1 svc”指定相对 URI。
解决方法:
<endpoint address="" //此处只拿出终结点地址部分
将终结点address改为空
原因:
IIS部署的时候,默认会有一个基地址Baseaddress,这个是根据你WCF服务程序的配置生成的。
如果你打算提供完成的地址格式,但是这个完整的地址格式 和Baseaddress 不匹配,比如端口不一样,就会出错。
address换成“”,目的就是使用默认的Baseaddress+“”。避免了你自己设置的和Baseaddress 不匹配的问题。
1.HTTP 错误 404.3 - Not Found
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
1. wcf 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序
解决方法: 网上说注册iss aspnet_iis ,结果在我这行不通,然后我在启用或关闭windows 功能中发现 .NET Framework 4.5 中的Http激活没有打勾,于是打上勾,这个问题就解决了
紧接着出现下面一个问题:
2. 无法激活服务,因为它不支持 ASP.NET 兼容性
错误提示:无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性。请在 web.config 中关闭 ASP.NET 兼容性模式或将 AspNetCompatibilityRequirements 属性添加到服务类型且同时将 RequirementsMode 设置为“Allowed”或“Required”。
解决方法:
默认情况下ASP.NET兼容性支持是关闭的,但很多时候需要打开Asp.Net的兼容性来利用Asp.Net的一些特性(使用session,上下文等)
如果要打开兼容性,需要做两步:一是在服务类加上如下标记:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class AppRuntimeStateSvc : IAppRuntimeStateSvc
{
//服务代码.
}
二是在web.config中的<system.serviceModel>段里加:
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
注意框架3.5以前都是默认就支持的,4.0以后默认就是没有打开兼容性支持的.
然后出现最后一个问题:
3. 如果在配置中将“system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled”设置为 true,则需要终结点指定相对地址。如果在终结点上指定相对侦听 URI,则该地址可以是绝对地址。若要解决此问题,请为终结点“http //localhost/Service1 svc”指定相对 URI。
解决方法:
<endpoint address="" //此处只拿出终结点地址部分
将终结点address改为空
原因:
IIS部署的时候,默认会有一个基地址Baseaddress,这个是根据你WCF服务程序的配置生成的。
如果你打算提供完成的地址格式,但是这个完整的地址格式 和Baseaddress 不匹配,比如端口不一样,就会出错。
address换成“”,目的就是使用默认的Baseaddress+“”。避免了你自己设置的和Baseaddress 不匹配的问题。
2015-02-14
展开全部
写好代码,准备部署wcf到iis时,首先遇到第一个问题
1.HTTP 错误 404.3 - Not Found
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
1. wcf 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序
解决方法: 网上说注册iss aspnet_iis ,结果在我这行不通,然后我在启用或关闭windows 功能中发现 .NET Framework 4.5 中的Http激活没有打勾,于是打上勾,这个问题就解决了
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
1.HTTP 错误 404.3 - Not Found
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
1. wcf 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序
解决方法: 网上说注册iss aspnet_iis ,结果在我这行不通,然后我在启用或关闭windows 功能中发现 .NET Framework 4.5 中的Http激活没有打勾,于是打上勾,这个问题就解决了
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询