2013-02-21 68 views
1

我創建了一個ASP.NET MVC WebPages應用程序。完美的地方工作。當我將其作爲網站安裝時,可以在服務器上完美工作。然而,當它被安裝爲IIS應用程序(下面的另一個網站級別,使用相同的應用程序池),它是所有拋出該異常:RIA服務錯誤但未使用

無法加載文件或程序集 「System.ServiceModel.DomainServices.Hosting ,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其 依賴項之一。該系統找不到指定的文件。

顯然是與WCF RIA服務有關,這是沒有使用。我所用的全部是Linq to SQL。這怎麼可能?

服務器:Windows Server 2008 R2中的IIS 7.5

+0

我發現部分web.config是從使用OData(RIA服務)的父網站繼承而來的。事情是我沒有找到我可以在「孩子」網站禁用此功能。我仍然不得不將2個程序集複製到子文件夾... – Koen 2013-02-21 16:08:23

回答

1

檢查您的應用程序的web.config如果它包含類似的條目:

<httpModules> 
    <add name="DomainServiceModule" 
     type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
</httpModules> 

它位於<system.web>部分。

即使世界也像另一個入口:在<system.webserver>部分

<modules runAllManagedModulesForAllRequests="true"> 
    <add name="DomainServiceModule" 
     preCondition="managedHandler" 
     type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
</modules> 

刪除條目,那麼你不應該得到例外。

+0

我試過了(在模塊部分 - 在集成模式下運行),但沒有工作。 – Koen 2013-02-25 09:56:16

+0

您是否還刪除了中的條目?我已經更新了我的答案 – Jehof 2013-02-25 10:04:34

+0

其實我已經嘗試了兩種方法,但仍需要將2個程序集(主機和服務器)部署到bin文件夾中。在IIS中沒有辦法告訴子應用程序不從父級繼承任何東西,並且像是完全獨立的應用程序一樣行事? – Koen 2013-02-25 13:22:28

0

我知道它太晚了,但可能是我的答案會對一些人有用。 我有類似的問題,但沒有對應於IIS。

所以,我有基於RIA服務的Web應用程序。這個應用程序使用單獨的dll(DAL),其中包含一些由RIA屬性歸類的類(當然,它引用了RIA dll)。 dll(DAL)被另一個沒有使用RIA的應用程序所引用,並且如您所提到的那樣引發了相同的錯誤(但僅限於System.ServiceModel.DomainServices.Server)。 此錯誤僅在WCF頻道創建期間引發(ChannelFactory <>)。所以我想WCF應該在分析契約類的屬性的時候知道所有引用的dll。但是我沒有發現任何解釋,爲什麼WCF不僅僅使用自己的屬性而沒有分析所有這些屬性。