1

我创建了一个 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

4

2 回答 2

2

检查应用程序的 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>部分。

还有另一个条目,例如:

<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>

<system.webserver>节中。

删除条目,那么您不应该得到异常。

于 2013-02-25T08:26:33.633 回答
0

我知道为时已晚,但我的回答可能对某些人有用。我有类似的问题,但没有对应于 IIS。

所以,我有基于 RIA 服务的网络应用程序。这个应用程序使用了单独的 dll (DAL),其中包含由 RIA 属性赋予的一些类(当然,它引用了 RIA dll)。dll (DAL) 被另一个应用程序引用,该应用程序不使用 RIA 并引发与您提到的相同的错误(但仅使用System.ServiceModel.DomainServices.Server)。此错误仅在 WCF 通道创建期间引发 (ChannelFactory<>)。所以我想WCF在分析合同类的属性时应该知道所有引用的dll。但是我没有找到任何解释为什么 WCF 不只使用自己的属性而不分析所有属性。

于 2015-04-15T12:53:03.733 回答