在这里问我这样的问题我感到很内疚,但我很茫然,并会感激一些帮助.
像Web应用程序这样的概念验证是在一台PC上构建的,并放在一个repo上,可以在另一台PC上下载.最初设置了自动构建功能,Azure将在签入时自动构建和发布,但已删除.事情在两端都有效,直到一方包括大量被排除的变更.现在我看到以下错误:
无法
从程序集...\packages\Microsoft.Net.Compilers.1.0.0\build ..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll加载"Microsoft.CodeAnalysis.BuildTasks.Csc"任务.无法加载文件或程序集'file:/// ...\packages\Microsoft.Net.Compilers.1.0.0\tools\Microsoft.Build.Tasks.CodeAnalysis.dll'或其依赖项之一.该系统找不到指定的文件.确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类.
有没有人对从何处开始寻找问题有任何建议?
我知道有关于WCF回调和事件的教程,但是我无法让它们实际工作,或者它们太复杂了.我是一个真正的初学者,所以我很想听听是否有人知道任何可靠的初学者教程,这些教程的目标是我现在想要具体解决的问题.如果我使用错误的术语(请纠正我),请原谅我,就像我说我是初学者一样.
问题:

它可能看起来比实际上更复杂.基本上我想要完成的是:
我可以做什么:
我可以设置连接,但我的服务仅限于独立功能.客户端可以进行"查询",但仅限于远程函数调用(例如"add",其中所有参数都随函数传递,处理在内部完成).
我想弄清楚的是:
TLDR:
主持人:服务< - >客户端.有没有办法将数据(只是一个int)推送到客户端而无需客户端调用任何函数(没有轮询或查询)?有没有办法让WCF服务访问变量存储在主机应用程序的实例中而不使用静态成员?这可以通过简单的方式完成吗?
谢谢你的帮助和时间,我知道我写了一本书. 如果有人知道任何好的教程,请指出他们. 但请不要 - 请不要指向Add(int x,int y)示例,其中客户端只在主机上调用add并返回结果 - 我已经完成了几次这样做并且它没有帮助我掌握WCF的真正功能.我真的不想在这一点上做任何严肃的事情,我真的想保持简单,所以我可以学习WCF可以做什么,而且我没有发现文档非常有用.再次感谢大家.
我正在为一个我正在努力的项目编写自动化测试,以便更熟悉MVC,EntityFramework(代码优先),单元测试和Moq.
我的类中有一个部分,Repository它设置了LastModified我的模型的一个区域,只要Repository.SaveChanges()控制器调用它就像这样工作(MyModelBase是一个基类):
public void RepoSaveChanges()
{
foreach(var entry in _dbContext.ChangeTracker.Entities().Where(e => e.State == EntityState.Modified))
{
MyModelBase model = entry.Entity as MyModelBase;
if (model != null)
{
model.LastModified = DateTime.Now;
}
}
_dbContext.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
这在正常在线环境中的应用程序运行时期间工作正常,但在测试方法中运行时会中断.我使用Moq来模拟DbContext中的DbSets并设置我的测试数据.
这是我的奇怪部分:我的单元测试运行正常(通过)但它们实际上并没有真正进入foreach循环 - 它在ChangeTracker.Entities()被访问时挂起并退出循环,向下跳转到_dbContext.SaveChanges().没有错误.
但是,在与我共享项目的朋友的机器上,ChangeTracker.Entities()访问时会收到SQLException .我确实在VS2015中检查了SQLExceptions,并且没有输出或其他异常指示.
结果StackTrace:
在System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean allowCreate,Boolean onlyOneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal&connection)....结果消息:
测试方法MyProject.Tests.TestClasses.MyControllerTests.TestCreate引发异常:System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
最后,我的问题是:有没有办法使用Moq模拟ChangeTracker(我怀疑不是来自之前的调查),还是我可以采取另一种方法来RepoSaveChanges()自动设置属性?如果没有访问,ChangeTracker.Entities()我需要有更新逻辑来LastModified为每个拥有它的模型类型设置字段.同样,我觉得避免使用该API /框架的一部分,因为测试是顽固的并不理想.
有没有人知道为什么没有抛出/不能在我的机器上捕获SQLException?或者有关如何ChangeTracker.Entities()在单元测试中使用的任何建议?LastModified作为最后的手段,我只会在所有模型和控制器上单独设置属性.
更新: …