我正在将MSDeploy集成到我的构建过程中,并且在验证时遇到问题.以下命令工作正常:
msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=Administrator,password=secret -dest:package=c:\DeployTest\KPC.zip
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用:
msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=kpcpublish,password=secret -dest:package=c:\DeployTest\KPC.zip
Run Code Online (Sandbox Code Playgroud)
并产生错误:
Error Code: ERROR_USER_NOT_ADMIN
More Information: Connected to '192.168.0.11' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administ
rator on '192.168.0.11'. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN.
Error: The remote server returned an error: (401) Unauthorized.
Error count: 1.
Run Code Online (Sandbox Code Playgroud)
我按照上面链接中的说明和我能找到的任何其他文档,几乎都说同样的事情:
.
Run Code Online (Sandbox Code Playgroud)Publish enabled for 'SERVER\kpcpublish' Granted 'SERVER\kpcpublish' …
我对MVP和实体框架世界相当陌生,所以请耐心等待.
我目前有一个View + Presenter组合,视图有两个事件Edit和Delete,演示者只是监听这些事件.我还有一个服务对象和存储库设置.服务层采用一些存储库实现,这些实现采用ObjectContext,因此构造的顺序是(将顶层对象传递给它下面的对象:
ObjectContext
|
V
Repositries
|
V
Service Object
|
V
Presenter
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我在顶部创建对象上下文时,它一直存在,演示者处于活着状态,这意味着编辑和删除使用来自服务的相同上下文实例.
因此,调用ServiceObject.Delete和ServiceObject.Edit会使用相同的上下文,这使得很难管理更改跟踪.根据我的理解,上下文应该只是短暂的,只有一个工作单元,对我来说编辑和删除都是不同的工作.
您如何使用实体框架进行DI并仍然管理上下文生命周期?
我看到人们刚刚在存储库中新建了对象上下文,这是一个很好的模式.
或者我应该在服务对象中执行此操作,例如:
ServiceObject{
public void Edit(// some args) {
Using(var context = new MyObjectContext) {
var repo = new MyRepo(context);
var entity = repo.GetForID(12);
// Do some stuff for edit
context.SaveChanges();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我不再将我的存储库传递给ServiceObject的构造函数而不执行DI :(.
在这种情况下我该怎么办?
有谁知道我可以看到的任何开源项目可以帮助我解决这个问题.
谢谢.
当 Guid 类型的变量具有特定值时,我想使用条件断点来中断。
我知道如何添加条件断点。我试图写一个这样的条件:
departmentId == new Guid("MYGUIDHERE")
Run Code Online (Sandbox Code Playgroud)
但这不起作用,它不会中断。谁能告诉我如何正确地做到这一点?