WCF Data Services运行出现未处理异常与程序集加载错误求助
问题解决步骤
一、修复「Service属性指定类型无法找到」错误
- 修正文件与类名的匹配关系:你创建的.svc文件名为WcfDataService1.svc,但后台类名为WcfDataService,.svc标记中CodeBehind属性填写为WcfDataService.svc.cs,三者命名不匹配。任选以下一种方式修正:
- 将后台类名修改为
WcfDataService1,同时将.svc标记中Service属性值改为WebApplication.WcfDataService1 - 将.svc文件名修改为WcfDataService.svc,保证CodeBehind属性值、文件名、类名三者完全一致
- 将后台类名修改为
- 确认项目生成配置:检查项目输出路径是否为默认的bin目录,没有自定义输出路径导致运行时无法加载编译后的类。
二、修复「Microsoft.Data.Services程序集加载不匹配」错误
- 不要手动替换系统路径下的dll,通过NuGet统一管理项目依赖:右键项目选择「管理NuGet程序包」,搜索安装对应版本的
Microsoft.Data.Services、Microsoft.Data.Services.Client包,若要使用5.6.4版本,安装后会自动更新项目引用。 - 检查并添加web.config程序集绑定重定向:在web.config的
configuration/runtime/assemblyBinding节点下添加如下规则:
<dependentAssembly> <assemblyIdentity name="Microsoft.Data.Services" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0" /> </dependentAssembly>
- 修正.svc标记的工厂类配置:你当前使用的
WebServiceHostFactory是普通WCF REST服务的工厂类,WCF数据服务需要使用专用工厂,将.svc标记的Factory属性替换为:System.Data.Services.DataServiceHostFactory, System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 清理项目缓存:删除项目根目录下的bin、obj文件夹,重新生成项目后再运行调试。
内容的提问来源于stack exchange,提问作者AHF
相关产品推荐
相关产品推荐

