System.ServiceModel.FaultException:即使卸载测试项目,“Test Doubles”投诉也是如此

时间:2016-05-18 22:48:22

标签: c# asp.net-mvc entity-framework wcf

我一直在努力解决这个例外:

The member 'Add' has not been implemented on type 'DbSet`1' which inherits 
  from 'DbSet`1'. Test doubles for 'DbSet`1' must provide implementations of
  methods and properties that are used.

当我研究这个特定的例外时,所有结果都指向修改单元测试中的模拟。有趣的是,我已经卸载了我的单元测试项目和所有嘲弄的东西。对总体System.ServiceModel.FaultException的研究返回了非常广泛的结果,其中一些我试图无济于事。我仔细研究了.csproj文件,.soln文件和网页。和app.configs,但没有任何事情像我一样跳出来。

这是我的情况:

我正在使用ASP.NET MVC作为我的WCF服务的客户端,该服务运行一些报告工具。我正在使用Entity Framework Code First来获取ASP.NET MVC客户端生成的报告工具配置的数据库结果。如上所述,我暂时卸载了我的单元测试项目。

在我的控制器中,我有类似的东西:

[HttpPost]
public ActionResult Create(ReportConfig reportConfig)
{
   _Context.ReportConfigs.Add(reportConfig);
   _Context.SaveChanges();

   _Client.Run(reportConfig, _Context);

   return RedirectToAction("index", "reportConfigs");
}

异常发生在_Client.Run(reportConfig, _Context);行,其中_Client是生成的ServiceReference客户端类的实例。如果我跳过异常,MVC客户端将继续运行,但该服务不会调用Run(...)方法。我一直在使用SvcTraceViewer.exe来获取更多信息。以下是堆栈跟踪的前几行:

System.Data.Entity.DbSet`1.GetInternalSetWithCheck(String memberName)
System.Data.Entity.DbSet`1.Add(TEntity entity)
ReadArrayOfReportFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString , XmlDictionaryString , CollectionDataContract )
System.Runtime.Serialization.CollectionDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context)
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, Type declaredType, DataContract& dataContract)
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 id, RuntimeTypeHandle declaredTypeHandle, String name, String ns)
ReadReportsContextFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString[] , XmlDictionaryString[] )
System.Runtime.Serialization.ClassDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context)

以下是来自SvcTraceViewer的一些其他信息:

Activity Name   Process action 'http://tempuri.org/IReportService/Run'.
Time    2016-05-18 15:02:30.1716
Level   Error
Source  System.ServiceModel
Process WcfSvcHost
Thread  11

我现在只保持简单,只使用Visual Studio Hosting Process。我已经清理了解决方案,删除了bin / obj目录,重新生成了服务参考,关闭了延迟加载&代理生成我的实体...我正在我的智慧结束。如果在类似情况下有任何人遇到过此例外情况,我可以采取哪些步骤来解决这个问题?

我是StackOverflow的新手,所以如果我可以改进这个问题或提供任何其他信息,请告诉我。

非常感谢!

0 个答案:

没有答案