Dot-Net

Web服務配置問題

  • October 27, 2015

我從應用程序目錄託管 2 個 WCF Web 服務和 1 個標準 .NET Web 服務。.NET 服務和 1 個 WCF 服務完美執行;但是,其他 WCF 服務返回以下錯誤:

該服務無法啟動,因為它不支持 ASP.NET 兼容性。為此應用程序啟用了 ASP.NET 兼容性。在 web.config 中關閉 ASP.NET 兼容模式,或將 AspNetCompatibilityRequirements 屬性添加到服務類型,並將 RequirementsMode 設置為“允許”或“必需”。

兩個 WCF Web 服務都有這條線

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

並且 web.config 文件有

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

為了增加更多的混亂,當我改變

AspNetCompatibilityRequirementsMode.Allowed

AspNetCompatibilityRequirementsMode.Required

服務很好。

還有,變

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

<serviceHostingEnvironment aspNetCompatibilityEnabled="false" />

在 web.config 中還允許所有 Web 服務執行。

這個問題出現在 IIS7 和我們在執行 IIS6 的 SBS2003 上託管的暫存環境中。

預先感謝您的所有幫助。

傑克

更新:

我可以通過刪除我的開發系統上的應用程序來讓它工作;但是,即使在刪除應用程序並在那裡重新創建後,問題仍然存在於我們的暫存伺服器上。

解決方法:

  1. 從 IIS 中刪除應用程序
  2. 重新創建目錄
  3. 創建一個新的應用程序池
  4. 在目錄的屬性中,創建應用程序並將其關聯到新的應用程序池。

多麼痛苦。

解決方法:

  • 從 IIS 中刪除應用程序
  • 重新創建目錄
  • 創建一個新的應用程序池
  • 在目錄的屬性中,創建應用程序並將其關聯到新的應用程序池。

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

解決方案:

創建 2 個不同的應用程序池。App1(目標框架 2.0)和 App2(目標框架 4.0)

將 App1 池分配給在 Framework 2.0 中開發的服務。

將 App2 池分配給在 Framework 4.0 中開發的服務。

重新啟動 IIS

它現在應該可以工作了。

引用自:https://stackoverflow.com/questions/5807147