2011-04-27 275 views
8

我從應用程序目錄託管2個WCF Web服務和1個標準.NET Web服務。 .NET服務和WCF服務中的一個完美工作;然而,其他的WCF服務返回以下錯誤:Web服務配置問題

The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode setting as 'Allowed' or 'Required'.

兩個WCF Web服務也行

<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _ 

和web.config文件具有

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

要添加更多混亂的混合,當我改變時

AspNetCompatibilityRequirementsMode.Allowed 

AspNetCompatibilityRequirementsMode.Required 

該服務工作得很好。

此外,更改

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

<serviceHostingEnvironment aspNetCompatibilityEnabled="false" /> 

在web.config中還允許所有的網絡服務功能。

此問題在IIS7和運行IIS6的SBS2003上承載的我們的暫存環境中都有介紹。

非常感謝您的幫助。
傑克

UPDATE:
我能夠得到它通過刪除在我的開發系統中的應用工作;但是,即使在刪除應用程序並在其中重新創建應用程序之後,問題仍然存在於我們的登臺服務器上。

解決方法:

  1. 從IIS
  2. 重新創建direcotry
  3. 創建新的應用程序池
  4. 在direcotry的屬性中刪除應用程序,創建應用程序和其關聯到新的應用程序池。

真是痛苦。

+1

將此貼爲答案並將其標爲答案。 – 2011-04-28 19:41:38

+0

這不是答案。這只是一個可怕的工作,而且問題再一次出現在我的現場服務器上。有沒有人有這個問題的真正的解決方案,或任何想法是什麼造成這個問題? – 2011-06-21 18:25:49

回答

0

解決方法:

  • 從IIS
  • 重新創建direcotry
  • 創建新的應用程序池
  • 在direcotry的屬性中刪除應用程序,創建應用程序和 其關聯到新的應用程序池。
3

您不能在單個應用程序池中承載2個不同的框架版本的服務。我的意思是,如果您在單個應用程序池中託管了2個WebService(一個使用Framework 2.0,另一個使用Framework 4.0),則任何一個服務都可以工作。第二行不通

SOLUTION:

    創建2個不同的應用程序池。 App1(Target Framework 2.0)和App2(Target Framework 4。0)
    將App1池分配給在Framework 2.0中開發的服務。
    將App2池分配給在Framework 4.0中開發的服務。
    重新啓動IIS

它現在應該工作。

+0

感謝Ashu的回覆;不幸的是,這兩個項目都指向了3.5框架。這是因爲在IIS中重新創建應用程序後,兩個Web服務都運行在同一個AppPool上。 – 2011-05-23 15:09:12