Window Server 2008 R2 +IIS7.5 部署WCF Rest问题

时间:2021-04-26 01:57:30

一.未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类


发生这个错误的原因:安装了高版本的.net framework 导致这种错误。可以尝试通过下面的方法解决:
 

第一步:找到配置文件applicationHost,参考路径: %windir%/system32/inetsrv/config/applicationHost 

打开找到下面标签,在managedHandler 加上“,runtimeVersionv2.0" 即可。


<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel,Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 

 

第二步:在命令提示符CMD上打开地址 C:\Windows\Microsoft.NET\Framework\v4.0.30319 然后输入aspnet_regiis.exe -iru 后回车即可

cmd:命令cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 


二.无法激活服务,因为它不支持 ASP.NET 兼容性

      错误提示:无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性。请在 web.config 中关闭 ASP.NET 兼容性模式或将 AspNetCompatibilityRequirements 属性添加到服务类型且同时将 RequirementsMode 设置为“Allowed”或“Required”。


        默认情况下ASP.NET兼容性支持是关闭的,但很多时候需要打开Asp.Net的兼容性来利用Asp.Net的一些特性(使用session,上下文等),具体可参考http://msdn.microsoft.com/zh-cn/library/ms752234.aspx。如果要打开兼容性,需要做两步:

1.在服务类加上如下标记:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class UserService: IUserService
{
//服务代码.
}

2.在web.config中的<system.serviceModel>段里加:

<serviceHostingEnvironment multipleSiteBindingsEnabled="true"  aspNetCompatibilityEnabled="true" />

注意框架3.5以前都是默认就支持的,4.0以后默认就是没有打开兼容性支持的.



三.apk文件下载MIME映射


打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性; 

单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口; 

单击“新建”,建立新的MIME类型; 

扩展名中填写“.apk”,

MIME类型中填写apk的MIME类型“ application/vnd.android.package-archive ” 

Window Server 2008 R2 +IIS7.5 部署WCF Rest问题

单击“确定”保存设置。 

重启IIS,使设置生效。