我创建了一个ASP.NET MVC WebPages应用程序。完美地工作。当我将其安装为网站时,在服务器上完美运行。但是当它作为IIS应用程序安装时(在另一个网站下面,使用相同的应用程序池),它所做的就是抛出这个异常:
无法加载文件或程序集 'System.ServiceModel.DomainServices.Hosting,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。系统找不到指定的文件。
显然是与WCF RIA服务相关的东西,没有使用。我使用的只是Linq to SQL。这怎么可能?
服务器:带有IIS 7.5的Windows Server 2008 R2
答案 0 :(得分: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>
部分。
Theres也是另一个条目:
<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>
<{1>}部分中的。
删除条目,然后你不应该得到例外。
答案 1 :(得分:0)
我知道为时已晚,但可能我的回答对某些人有用。 我有类似的问题,但没有对应IIS。
所以,我有基于RIA服务的网络应用程序。这个应用程序使用单独的dll(DAL),其中包含一些由RIA属性归属的类(当然,它引用了RIA dll)。 dll(DAL)被另一个应用程序引用,该应用程序没有使用RIA并引发了与您提到的相同的错误(但只有System.ServiceModel.DomainServices.Server
)。
仅在WCF通道创建期间(ChannelFactory&lt;&gt;)引发此错误。所以我想WCF在分析合同类的属性时应该知道所有引用的dll。但我没有找到任何解释为什么WCF不使用自己的属性而不分析所有属性。