过期后从数据库中删除会话?

这可能是一个愚蠢的问题,但我想知道是否每15分钟从我的数据库中删除所有过期的“会话”是一个好主意? 或者只是留在那里? 会话在X分钟后过期,它不再有用,似乎只是占用空间?

为什么我不能在C#中设置此ACL规则?

在Vista SP1上作为提升管理员运行,我的C#应用​​程序尝试使用以下代码设置以下规则。 不会产生错误,但目录的ACL上也没有任何更改。 我错过了什么? public static void Main( string args[] ) { string dirPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), “Company”), “Product” ); Directory.Create(dirPath); _SetAcl(dirPath, “Users”, FileSystemRights.FullControl); } private static void _SetAcl(string path, string identity, FileSystemRights rights) { var info = new DirectoryInfo(path); var acl = info.GetAccessControl(); var rule1 = new FileSystemAccessRule(identity, rights, AccessControlType.Allow); bool modified; acl.ModifyAccessRule(AccessControlModification.Reset, rule1, out […]

Azure DocumentDB – HTTP请求中找到的MAC签名与计算的签名不同

看似随机我无法从DocumentDB获取文档。 我可以调试,让它失败,下面的消息,然后再试一次,然后工作。 如果这与我的MAC地址有关,我也尝试从不同的工作站获得相同的结果。 Microsoft.Azure.Documents.UnauthorizedException,message:{“错误”:[“在HTTP请求中找到的MAC签名与计算的签名不同。服务器使用字符串后签名 – ‘post \ ndocs \ nmo1oanohoga = \ nwed ,25二月2015 12:35:57 gmt \ n \ n’“]} 我怎么去报道这个和b)试图弄清楚发生了什么?

如何在消费时将项目添加到集合中?

下面的示例抛出InvalidOperationException,“Collection已被修改;枚举操作可能无法执行”。 执行代码时。 var urls = new List(); urls.Add(“http://www.google.com”); foreach (string url in urls) { // Get all links from the url List newUrls = GetLinks(url); urls.AddRange(newUrls); // <– This is really the problematic row, adding values to the collection I'm looping } 我怎样才能以更好的方式重写这个? 我猜一个递归的解决方案?

C#让程序等到浏览器完成加载网页

如何让我的程序等到网页完成加载后再执行下一个语句。 我试过Process :: WaitForInputIdle(); 但它不等待。 ProcessStartInfo pInfo = new ProcessStartInfo(“firefox.exe”); pInfo.Arguments = “http://example.com”; Process p = Process.Start(pInfo); p.WaitForInputIdle(); pInfo.Arguments = “http://example.net”; p = Process.Start(pInfo); p.WaitForInputIdle();

使用C#程序启动Dll

我有一个C#表单应用程序…我创建了一个Dll …现在我想使用这个程序启动该DLL。 我该怎么做? #include typedef int (*function1_ptr) (); function1_ptr function1=NULL; int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { HMODULE myDll = LoadLibrary(“Dll1.dll”); if(myDll!=NULL) { function1 = (function1_ptr) GetProcAddress(myDll,”function1″); if(function1!=NULL) function1(); else exit(4); FreeLibrary(myDll); } else exit(6); GetLastError(); return 0; } 这是用于测试我的DLL的代码…即Dll1.dll .. function1是dll1.dll中的函数…..我可以用C#代码做类似的事吗???

Asp.Net核心unit testing异步控制器

我有这个测试: [Fact] public async void Can_Paginate() { //fake data var product1 = new Product { ProductId = 1, ProductName = “P1” }; var product2 = new Product { ProductId = 2, ProductName = “Product 2” }; var product3 = new Product { ProductId = 3, ProductName = “Product 3” }; var product4 = new Product […]

我们可以使用Linq将匿名类型转换为List 到C#中的实体吗?

我有一个包含三列的表我想使用自联接并检索具有别名的列。 表: Material(ID,Name,MaterialParentID) public List GetMaterialList() { List materilaList = new List(); var query = (from c1 in db.Materials join c2 in db.Materials on c1.ID equals c2.MaterialParentID select c2); return query.ToList(); } 我想在现有查询中添加以下内容并返回List select new { c2.ID, c2.MaterialParentID, c2.Name, ParentName = c1.Name })

C#WPF – 等待加载页面

我在StackOverflow上看到了关于这个主题的几个线程,但是它们似乎都没有提供答案。 我有一个按钮,当点击它时,会打开一个不可见的网页,导航到一个URL,将信息输入一个框,按一个按钮,然后抓取屏幕以获取信息。 我的代码的骨头基本上在点击中: WebBrowser wb = new WebBrowser; wb.Visibility = System.Windows.Visibility.Hidden; wb.Navigate(“http://somepage.com”); 这就是它变得棘手的地方。 我正在寻找一种方法来确保在尝试输入数据或刮擦屏幕之前加载页面。 我已经看过几个讨论Navigated , IsLoaded , LoadCompleted以及BackgroundWork东西的线程,但是我无法使用其中的任何一个。 哪个是用于确定页面已完全加载的最佳选项? 您如何获得所选择的方法? 我也无法从屏幕上获取数据,因为WPF不使用相同的GetElementByID 。 编辑: 根据下面的评论,以下是我遇到的错误: 一旦页面被导航,首先导航,并且不一定等到所有对象都被加载。 这可以按预期工作,但不能用于我的目的。 IsLoaded永远不会返回true private void GetData_Click(object sender, RoutedEventArgs e) { int x=0; HTMLDocument doc; wb = new WebBrowser(); wb.Visibility = System.Windows.Visibility.Visible; wb.Navigate(“somesite.com”); doc = wb.Document as mshtml.HTMLDocument; while(!wb.IsLoaded) { //Wait […]

如何在C#中杀死线程?

我有一个线程打开一个MyMessageAlert类型的forms。 此表单是一个弹出窗口,在我调用它时打开。 它有一个定时器,在30秒后调用CloseWindow()方法。 m_messagAlert = new MyMessageAlert(); ParameterizedThreadStart thStart = new ParameterizedThreadStart(m_messagAlert.setMessage); Thread thread = new Thread(thStart); thread.Start(strMessage); //at this point, the MyMessageAlert form is opened. 我已经定义了一个类型线程列表: public List m_listThread; 每次我创建一个线程,我都将它添加到我的列表中: m_listThread.Add(thread); 当我关闭应用程序时,我希望打开的MyMessageAlert类型的forms将立即关闭(不等待30秒)。 问题是我无法阻止它! 我试图通过使用Abort()函数遍历列表来杀死它: foreach (Thread thread in m_listThread) { if (thread.IsAlive) thread.Abort(); } 但它没有帮助。