我们有一个使用SignalR作为其通知机制的Web应用程序.问题是当我们使用IE浏览我们的Web应用程序时,SignalR使用Long Polling作为其传输类型,因此将请求发送回我们的Web服务器,因此Session永远不会过期,无论多长时间浏览器空闲.
我们在想,也许我们可以在Global.asax中捕获请求并查看它们是否来自SingalR并将会话超时设置为剩余时间(我不认为这是一个简单的解决方案).
我们缺少其他任何解决方案吗?
我是github的新手,我喜欢帮助其他人完成我感兴趣的项目.我知道github上有很多指南,但我认为收集一些真人的经历会很好.
所以,我邀请您发布关于您在github上的第一次体验.无论你是一个不是新手还是github社区中的重摇滚,我认为你的界限可以鼓励像我这样真正的新手进入这个伟大的开源社区.
我们的应用程序中有两个表都有一个ShowOrder列.我们在我们的应用程序中使用NHibernate并使用HQL,我们ShowOrder分别按第一个表和第二个表的顺序连接这两个表.
这是我的查询的简化版本:
SELECT pr.Id as Id,pr.Title as Title, pr.ShowOrder as ShowOrder
FROM Process pr
INNER JOIN ProcessGroup prg ON pr.GroupId=prg.Id
ORDER BY prg.ShowOrder,pr.ShowOrder
Run Code Online (Sandbox Code Playgroud)
一般来说,我们的应用程序没有任何问题.但我们有一个旧的应用程序和一个转换例程来将其数据库转换为我们的新应用程序数据库.
每当我们将旧数据库转换为新数据库时,SQL服务器想要执行上述查询时都会发生错误.例外说:
已按列表顺序多次指定列
如果我们选择pr.ShowOrder没有别名,一切都OK.
看来,如果有一个ShowOrder在选择列表别名,SQL Server将忽略表的别名,并假定pr.ShowOrder和prg.ShowOrder是相同的.
我尝试使用Ping.SendAsync()方法在C#中ping一些IP地址.我有一个带有5个IP地址的treeView,并为每个节点使用SendAsync()方法.在这里你可以看到:
private void Form1_Load(object sender, EventArgs e)
{
byte[] buffer = Encoding.ASCII.GetBytes(".");
PingOptions options = new PingOptions(50, true);
AutoResetEvent reset = new AutoResetEvent(false);
Ping ping = new Ping();
ping.PingCompleted += new PingCompletedEventHandler(ping_Complete);
foreach (TreeNode node in treeView1.Nodes)
{
ping.SendAsync(node.Text, 5000, buffer, options, reset);
}
}
private void ping_Complete(object sender, PingCompletedEventArgs k)
{
foreach (TreeNode node in treeView1.Nodes)
{
PingReply reply = k.Reply;
if (reply.Status == IPStatus.Success)
{
node.Text = node.Text + " (OK)";
}
else
{
node.Text = node.Text + …Run Code Online (Sandbox Code Playgroud) 我在我们的应用程序中使用无状态来实现状态机的逻辑.我们有一个AcceptedFile具有其他内部(子)状态的状态.问题是我不知道如何在我的代码中指示初始内部状态,以便当机器转移到AccptedFile状态它也会自动转换到其初始内部状态.这就是我为模拟这种行为所做的:
machine.Configure(State.AcceptedFile)
.OnEntry(() => machine.Fire(Trigger.MakeReadyForAdvertising))
.Permit(Trigger.MakeReadyForAdvertising,State.ReadyForAdvertising)
Run Code Online (Sandbox Code Playgroud)
这ReadyForAdvertising是一个内部状态.AcceptedFile这在大多数情况下工作正常,但每当我将状态机的初始状态设置为AcceptedFile这样:
var statemachine=new StateMachine<State,Trigger>(State.AcceptedFile)
...
Run Code Online (Sandbox Code Playgroud)
不会发生自动转换,因此机器将处于AcceptedFile状态而不是ReadyForAdvertising.
有没有更好的方法来实现这种行为?
我正在使用NHibernate进行ORM,一切正常.
现在我开始编写一些单元测试(使用数据库,我不想付出过多的努力来抽象它,我知道它不完美,但它的工作原理......).
我需要确保DB对于某些测试来说是完全空的.当然,我可以创建整个数据库.但这似乎有点矫枉过正,我认为需要更长的时间......
是否有DELETE_ALL命令清除所有表,我可以在NHibernate中使用?
克里斯
编辑:一个简短的更新,我决定采用SQLite方式,用NHibernate改变这个没问题.有一些陷阱,我使用这个配置,它的工作原理.否则,由于nHibernate在会话期间关闭连接,可能会出现"找不到表"错误,从而导致"丢失"数据库...
为了您的方便:复制并粘贴......
.Database(SQLiteConfiguration.Standard.ConnectionString("Data Source=:memory:;Version=3;New=True;Pooling=True;Max Pool Size=1;")
.Raw("connection.release_mode", "on_close"))
.Mappings(obj => obj.AutoMappings.Add(_config.APModel));
Run Code Online (Sandbox Code Playgroud) 我们有一个类型的实体,T1它有一个类型的成员T.这样的事情:
public class T1
{
public T Member{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
用户可以使用我们的UI为我们提供一个过滤器,我们已经将它转换为一个函数的表达式,该函数获得一个T并返回bool (Expression<Func<T,bool>>)
我想知道是否可以将其转换为获取T1并返回bool的函数的表达式.
其实我想转换这个:
(t=>t.Member1==someValue && t.Member2==someOtherValue);
Run Code Online (Sandbox Code Playgroud)
对此:
(t1=>t1.Member.Member1==someValue && t1.Member.Member2==someOtherValue);
Run Code Online (Sandbox Code Playgroud) 我已经安装了openldap for windows服务器,并使用LDAPAdmin其默认值连接至该服务器:
Server=ldap://localhost:389
Base:dc=maxcrc,dc=com
UserName:cn=Manager,dc=maxcrc,dc=com
Password:secret
Run Code Online (Sandbox Code Playgroud)
现在,我想用来PrincipalContext向用户添加用户ou=People
。问题是,我什至无法使用PrincipalContext连接到服务器。我已经在网上搜索了很多关于如何连接到ldap服务器的答案,但是没有一个对我有用。我一直在为PrincipalContext构造函数提供一个NullReferenceException或多个ServerNotFoundException不同的组合参数。我以为可以使用PrincipalContext作为以下之一:
new PirncipalContext(ContextType.Domain,"maxcrc.com","dc=maxcrc,dc=com")
Run Code Online (Sandbox Code Playgroud)
要么
new PrincipalContext(ContextType.ApplicationDirectory,"localhost:389","dc=maxcrc,dc=com")
Run Code Online (Sandbox Code Playgroud)
但是它们都没有起作用。有人说我应该提供用户名和密码,所以我做到了,但我不断出现异常。
因此,请告诉我如何使用PrincipalContext连接到openldap?
PS我的计算机已加入Active Directory域控制器。
在过去的两个小时里,我一直在谷歌搜索和堆栈溢出,无法找到我的问题的答案:
我正在使用ASP.NET MVC和NHibernate,我所要做的就是手动映射我的实体而不映射它的基类.我使用以下约定:
public class Car : EntityBase
{
public virtual User User { get; set; }
public virtual string PlateNumber { get; set; }
public virtual string Make { get; set; }
public virtual string Model { get; set; }
public virtual int Year { get; set; }
public virtual string Color { get; set; }
public virtual string Insurer { get; set; }
public virtual string PolicyHolder { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
EntityBase不应该映射的地方.
我的NHibernate助手类看起来像这样:
namespace Models.Repository
{
public …Run Code Online (Sandbox Code Playgroud) 我知道这个问题之前已经被问过并得到了回答,但是没有一个答案似乎符合我的要求.我需要能够暂停动画,但仍然可以让我的暂停菜单出现并询问用户输入.这是可能的,如果是这样,我该怎么做呢.
c# ×6
nhibernate ×2
alias ×1
asp.net ×1
asp.net-mvc ×1
github ×1
lambda ×1
long-polling ×1
objective-c ×1
open-source ×1
openldap ×1
ping ×1
session ×1
signalr ×1
sql-order-by ×1
sql-server ×1