AspNetCompatibilityRequirements 在 WCF 中的作用

如果出現錯誤描述如下信息:

錯誤提示:無法激活服務,因爲它不支持 ASP.NET 兼容性。已爲此應用程序啓用了 ASP.NET 兼容性。
請在 web.config 中關閉 ASP.NET 兼容性模式或將 AspNetCompatibilityRequirements 
屬性添加到服務類型且同時將 RequirementsMode 設置爲“Allowed”或“Required”。

解決方案有兩種。

第一種:在接口的實現類 XXXXXXXXXXService.svc.cs 的類名上面加上特性,代碼如下:

using System.ServiceModel.Activation;

namespace test.WCF.WebService
{
    // 注意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼、svc 和配置文件中的類名“MyService”。
    // 注意: 爲了啓動 WCF 測試客戶端以測試此服務,請在解決方案資源管理器中選擇 MyService.svc 或 MyService.svc.cs,然後開始調試。
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class MyService : IMyService
    {
        public string SmockAndFireAlarm(string alarmType, string cellCode)
        {
            return "success";
        }
    }
}

第二種:在 web.config 中增加配置信息,樣例如下:

<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"  aspNetCompatibilityEnabled="true" />
</system.serviceModel>

注意框架3.5以前都是默認就支持的,4.0以後默認就是沒有打開兼容性支持的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章