【问题标题】:WCF Service hosted on shared host托管在共享主机上的 WCF 服务
【发布时间】:2012-05-08 16:04:49
【问题描述】:

我使用 .NET 3.5 服务开发了一个 WCF,用于将一些数据导入互联网。

使用 IIS Express 在本地一切正常。当我将服务部署到共享主机并将浏览器指向服务地址时,出现以下异常:

无法加载文件或程序集“系统,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”或其依赖项之一。系统找不到指定的文件。

我的环境配置为使用具有 32 位兼容性的 .NET 3.5。

堆栈跟踪显示:

[FileNotFoundException: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.] System.ServiceModel.AsyncResult.End(IAsyncResult result) +11655726 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +194 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +176 System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +275 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

关于如何解决这个问题的任何线索?

【问题讨论】:

  • 我放弃了 WCF 并开发了一个普通的旧 Web 服务来导入我的数据。部署 WCF 的问题太多。

标签: .net wcf shared-hosting assembly-loading


【解决方案1】:

“我的环境配置为使用具有 32 位兼容性的 .NET 3.5。”

你确定吗?看起来很像您的本地系统使用的是 .net 4.0,而您的主机只有 3.5。

【讨论】:

  • 不,它在本地使用 .net 3.5。
  • 检查参考列表(解决方案资源管理器)中对系统的参考。我敢打赌它不会说 3.5
  • 我查看了所有程序集,都没有指定 4.0.0.0 版本。
  • 我想通了。这是我的主机提供商的错误配置。从那以后我就把它踢出去了。
【解决方案2】:

FileNotFoundException: 无法加载文件或程序集 'System, Version=4.0.0.0

明确声明您引用 .NET 4.0

【讨论】:

  • 我在服务目录中对4.0.0.0进行了文本搜索。它向我展示了 System.Data.Entity.Design.EntityClassGenerator 4.0.0.0 中的很多引用,以及引用缓存中 System.String、mscorlib、Version=4.0.0.0 中的更多引用。
  • @JohnPrado:你使用 Entity Framework 4.x 吗?您仍然可以使用 EF 但版本。如果坚持使用 .NET 3.5,则为 1.0。另见MSDN
  • 我认为问题是从框架 4.0 降级到 3.5。我会尝试从头开始,看看它是否能解决问题。感谢人们的帮助。
猜你喜欢
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
相关资源
最近更新 更多