我对Nancy很陌生,现在正在尝试使用Auth.期待完全实现Forms身份验证.
出于测试目的,我设置了3个模块.
其他模块:
public class OtherModule : NancyModule
{
public OtherModule() : base()
{
// Use global, module level authentication.
this.RequiresAuthentication();
Get["/other"] = _ =>
{
return "Other";
};
Get["/woot"] = _ =>
{
return "Woot";
};
}
}
Run Code Online (Sandbox Code Playgroud)
主要模块:
public class MainModule : NancyModule
{
public MainModule() : base()
{
Get["/yolo"] = _ =>
{
// Use per-route authentication.
this.RequiresAuthentication();
return "#YOLO";
};
}
}
Run Code Online (Sandbox Code Playgroud)
AuthModule:
public class AuthModule : NancyModule
{
public AuthModule() : base()
{
Get["/login"] = …
Run Code Online (Sandbox Code Playgroud) 我正在学习QueryOver,但我不能为我的生活弄清楚如何做多个简单的查询.
我写了以下内容:
var result = Session.CreateCriteria(typeof (Product))
.CreateAlias("Categories", "categories")
.Add(Property.ForName("categories.Id").Eq(categoryId))
.List<Product>();
Run Code Online (Sandbox Code Playgroud)
这实现了期望的结果.基本上我有
产品> ProductCategory <类别
ProductCategory只有ProductId/CategoryId,我正在尝试选择特定类别中的所有产品.
我不知道从哪里开始尝试使用queryover执行此操作.
我已阅读以下MSDN页面:
http://msdn.microsoft.com/en-en/library/cc817574.aspx
关于SO的问题很多,但我并不完全相信我有我想要的答案.
我们目前正在处理一个问题,即我们的客户端将所有计算机从IE6升级到IE8,但是通过组策略,它们强制IE8以兼容模式运行.
我认为这样做是为了让传统的内部应用程序继续工作.然而这打破了我们的网站,因为我们不支持IE7 100%
使用Meta标签:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Run Code Online (Sandbox Code Playgroud)
要覆盖其兼容模式设置并强制我们的网站使用IE8,证明他们的组策略未设置为8888?
8888:无论指令如何,页面始终显示在IE8mode中.(这绕过了前面列出的例外情况.)
使用参数化查询似乎将参数的长度设置为传入的值的长度.
做类似的事情:
var person = Connection.Query<People>("select * from People where Name = @name",
new { name = "Fred"});
Run Code Online (Sandbox Code Playgroud)
使参数为NVARCHAR(4),因此具有不同长度的下一个查询会在缓存的计划上出现错过并创建一个新的查询.
如何更改它以便它只使用我指定的长度.
我不知道这会被称为什么搜索,如果这是重复请链接我:)
是否可以在浏览器的JavaScript中加载外部文件(这一点很容易),但考虑到外部文件可能相当大(比如50MB)显示加载该文件的进度指示器?
即我,知道文件的服务器端大小,不知道gzip大小,我想说X%的文件加载.
我没有尝试任何东西,我找不到任何可行的工作,更不用说找到可能的东西了.
问题:尝试按需加载50MB JavaScript库,但显示加载进度.
我有一个查询需要一些时间才能运行,因此它的运行隔离级别设置为“未提交读”,数据可能是脏的,因为它仅用于快速概览系统。
美好一天(早上第一件事)的查询需要大约 3-15 秒的时间运行。(日期排序会减慢速度,无需排序即可立即完成)
但随着一天的开始,跑步的时间越来越长,最终需要超过 2 分钟的时间。
我注意到查询在执行时似乎获得了大量的对象/页面锁。
我不明白的是为什么它在设置为“读取未提交”时获取锁。
查询使用的索引之一设置为使用行/页锁定。
我的问题:
设置为使用行/页锁的索引是否会导致数据在访问时被锁定,即使查询为“未提交读”?
我正在尝试实现如下所示的UoW:http://blog.iannelson.systems/wcf-global-exception-handling/
但我不能为我的生活弄清楚如何用Autofac连接它.我完全不知道从哪里开始.
使用http://autofac.readthedocs.org/en/latest/integration/wcf.html我使用Autofac让WCF正常工作
但要注入或添加IEndpointBehavior?不知道...
如果有更好的方法来实现UoW,我想听听.
编辑:
现在我刚刚完成了:
builder.RegisterType(typeof (UnitOfWork))
.As(typeof (IUnitOfWork))
.InstancePerLifetimeScope()
.OnRelease(x =>
{
Trace.WriteLine("Comitted of UoW");
((IUnitOfWork) x).Commit();
// OnRelease inhibits the default Autofac Auto-Dispose behavior so explicitly chain to it
x.Dispose();
});
Run Code Online (Sandbox Code Playgroud)
虽然我不知道这是否是一种可以接受的方式,但看起来像是黑客:(
EDIT2:
似乎不可能在WCF中运行UoW:/
编辑3:
我在这里发布了我的解决方案:http://www.philliphaydon.com/2011/11/06/unit-of-work-with-wcf-and-autofac/
创建一个实现DynamicObject的类
public class Test : DynamicObject
{
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
if (binder.Name == ("Posts"))
{
result = "property accessed was 'Posts'";
return true;
}
return base.TryGetMember(binder, out result);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以打电话
dynamic test = new Test();
var result = test.Posts;
Run Code Online (Sandbox Code Playgroud)
而值result
是"动态测试=新测试(); var result = test.Posts;"
没关系.
我想知道的是,当调用TryGetMember时,可以获得链接值.
所以,如果我打电话:
dynamic test = new Test();
var result = test.Posts.Load(123);
Run Code Online (Sandbox Code Playgroud)
然后我可以这样做:
if (binder.Name == ("Posts"))
{
if (... == "Load")
result = this.Load<Post>(... 123);
return …
Run Code Online (Sandbox Code Playgroud) 这个问题类似于我想要实现的目标:
当没有发布的属性与模型匹配时,避免在 ASP.Net Web API 中使用空模型
但它没有得到答复。
我有一个采用 GET 模型的路线:
[HttpGet, Route("accounts")]
public AccountListResult Post(AccountListRequest loginRequest)
{
return accountService.GetAccounts(loginRequest);
}
Run Code Online (Sandbox Code Playgroud)
该模型填充有来自操作过滤器的附加数据。
在这种情况下,所有需要知道的是 UserId,动作过滤器根据 cookie/header 将其添加到模型中,并与请求一起传入。
我想在 WebAPI 中使用所有默认模型绑定,但我想避免空对象。
我不相信模型绑定可以解决我的问题。
如何替换 Web API 模型绑定的行为,以便在没有传入参数时接收新实例而不是 Null
这更接近我想要做的,除了它的每种类型很乏味。
IExceptionHandler
在WebAPI中处理多个实现的最佳方法是什么?
config.Services.Replace(typeof(IExceptionHandler), new ExceptionHandlerFilter());
config.Services.Add(typeof(IExceptionHandler), new ValidationExceptionHandlerFilter());
Run Code Online (Sandbox Code Playgroud)
尝试注册多个实现时,启动会抛出异常:
不支持服务类型IExceptionHandler.\ r \nParameter name:serviceType
但API建议支持多个处理程序,因为有一个ShouldHandle
属性可以覆盖ExceptionHandler
类.
我发现最近的是:WinRT Metro应用程序是否交叉兼容(x86/64和ARM)?
我还没有开发任何Metro应用程序,但我想要了解的是,如果您正在开发Metro应用程序,则必须针对WinRT(Windows运行时)进行开发.这是构建Metro应用程序的唯一方法,通过JavaScript,C#或C++来实现这一点,这无关紧要......所以它应该全部适用于ARM ...是否可以创建一个Metro应用程序不适用于ARM?
VLC团队正在努力为Kickstarter筹集资金,为Windows 8 Metro开发VLC播放器.
http://www.kickstarter.com/projects/1061646928/vlc-for-the-new-windows-8-user-experience-metro
适用于Windows的VLC媒体播放器目前已安装在全球约100,000,000台设备上.现有版本在Windows 8的桌面模式下运行,仅适用于基于Intel的PC.这个新端口将本地集成在新的用户体验中,并将在后续版本中支持基于ARM的平板电脑
因此,如果它们本身与用户体验集成,即使其成为Windows 8应用程序,为什么它不能在ARM芯片上开始工作?
c# ×3
arm ×1
autofac ×1
deadlock ×1
dynamic ×1
group-policy ×1
javascript ×1
nancy ×1
nhibernate ×1
progress-bar ×1
queryover ×1
sql-server ×1
unit-of-work ×1
wcf ×1
windows-8 ×1