我有一个Visual Studio 2010 MVC2 Web应用程序,我正在使用Hudson通过命令行构建.我想让Hudson发布一个Web输出,所以我将DeployOnBuild = true和CreatePackageOnPublish = True标记添加到我的命令行.
我的命令是:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
/target:Clean,Build
/property:Configuration=Debug;DeployOnBuild=True;CreatePackageOnPublish=True;
[my project name.csproj]
Run Code Online (Sandbox Code Playgroud)
在我的开发机器(Windows 7)上运行此命令成功发布了一个Web输出\obj\Debug\Package\PackageTmp\.但是在Hudson服务器(WS 2008)上运行它会成功编译,但它不会发布.相同的命令,相同版本的MSBuild,相同的源代码.
我已经尝试了/t:Publish目标,这给了我一个Skipping Unpublishable Project响应,正如我在其他几个人的帖子中看到的那样.
我已经尝试将DeployOnBuild=True和CreatePackageOnPublish=True标签添加到我的项目文件中,并且没有任何变化.
有关为什么不发布的任何想法?我错误地使用这些标签吗?我确信这里有一些我没看到的东西.
完全简单的情况,但我不能让它工作.我遇到了使用Moq模拟泛型方法(在本例中,在Ninject内核接口上)的问题:
T Get<T>();
Run Code Online (Sandbox Code Playgroud)
我设置了我的模拟对象:
Mock<IKernel> mockKernel = new Mock<IKernel>();
mockKernel.Setup(x => x.Get<IGetUserQuery>()).Returns(new GetUserQuery());
Run Code Online (Sandbox Code Playgroud)
在运行时,我得到以下异常:
Expression references a method that does not belong to the mocked object: x => x.Get<IGetUserQuery>(new[] { })
Run Code Online (Sandbox Code Playgroud)
知道为什么要扔这个吗?我之前在没有问题的情况下嘲笑Moq中的泛型......是否存在不支持通用模拟的情况?这似乎是一个简单的案例.唯一的缺点是IGetUserQuery继承了泛型类型:
IGetUserQuery : ICommand<UserQueryInput, UserQueryOutput>
Run Code Online (Sandbox Code Playgroud)
我没有看到这会产生问题,因为这个ICommand实现的泛型类型是由IGetUserQuery静态定义的,所以我怀疑这会让Moq感到困惑.
提前致谢
我正在设计一个纯多租户数据库(一个数据库,一个模式),我想在我的大多数表中保留一个Tenant_Id作为安全措施,以确保数据不会落入错误的租户手中.看起来这需要每个表上的复合键.
例:
在单租户情况下,我会有一个主键:
Animal_Id (PK)
Animal_Type
Animal_Name
Run Code Online (Sandbox Code Playgroud)
在多租户情况下,我会为Tenant_Id添加另一个主键:
Animal_Id (PK)
Tenant_Id (PK)
Animal_Type
Animal_Name
Run Code Online (Sandbox Code Playgroud)
是否在每个表中添加一个Tenant_Id列意味着我需要在每个表中都有一个复合键,或者有一种安全的方法可以避免这种情况吗?复合键是可以的,但如果可以,我想避免使用它们.
我正在使用表单身份验证构建一个ASP.NET MVC3应用程序,我想在用户登录时注销用户的所有现有会话.我正在尝试阻止不同工作站的多个人登录并在相同的帐户.
有没有一种标准的处理方式?注销现有会话很简单,但我没有遇到过通过同一帐户检查其他会话并将其注销的方法.
关于如何破解这个问题,我有一些想法,但我很好奇是否已经建立了使用IIS或FormsAuthentication API的方法.
我正在考虑将Fluent NHibernate用于SQL Server 2008的新应用程序,我无法理解我所看到的连接处理行为.
我正在使用sp_who2监视连接,这是我看到的:
创建SessionFactory时,将打开一个连接.在应用程序被杀之前,此连接似乎保持打开状态.
打开新会话时不会打开任何连接.(没关系,我理解NHibernate会等到最后一刻创建数据库连接).
即使我通过NHibernate运行查询,也没有打开新的连接.我必须假设它正在使用创建SessionFactory时创建的连接,该连接仍然是打开的.我在查询之后(在会话关闭之前)设置了断点,并且sp_who中没有出现新的会话.
通过单个连接运行整个应用程序是不可接受的(显然). 如何确保每个ISession都有自己的连接? 我确信这里有一些明显的东西......
提前致谢.
我正在考虑将Fluent NHibernate用于我的项目,我还没有找到任何关于FH是否支持NHibernate设置(如show_sql和prepare_sql)的文档.我可以在没有show_sql的情况下生活,但prepare_sql对于确保运行时的良好性能非常重要.
谁能告诉我是否可以在Fluent NHibernate中配置这些设置?
我有一个首先生成数据库的实体框架上下文。我正在添加一个带有将由数据库生成的 GUID PK 的表。当我从数据库生成 EDMX 模型时,它将 StoreGeneratePattern 设置为“None”。
我需要手动将应用程序的 StoreGeneratePattern 更改为“Identity”,以便让数据库创建 ID。
有没有办法确保 EDMX 自动正确设置该值?
nhibernate ×2
.net ×1
asp.net ×1
c# ×1
database ×1
generics ×1
mocking ×1
moq ×1
msbuild ×1
multi-tenant ×1
orm ×1
publishing ×1
security ×1
sql-server ×1