如何为一个有复合主键的表创建DbSyncForeignKeyConstraint?
我正在尝试在具有复合主键的表向表上创建一个DBSYNCForeignKeyConstraint,但是我一直遇到错误.这是一些示例代码以说明我在做什么: 示例表: USE [TempTest] GO CREATE TABLE [dbo].[Users]( [UserId] [uniqueidentifier] NOT NULL, CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [UserId] ASC ) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [P
使用Windows Service编写一个同步应用程序,以并行处理文件
我的Windows Server上有一个文件夹,人们将在其中将CSV文件上传到C:\Uploads. . 我想编写一个简单的Windows Service应用程序,该应用程序将扫描此上传文件夹(每5秒一次),并在并行(线程/每个文件?)中收集文件并处理文件.但是,主要的扫描过程不应重叠,即需要锁定. 所以,我是这样尝试的: 我知道这不是Windows服务代码,它是测试创意的游戏机应用程序... 根据DCASTRO的答复 更新了代码 class Program { static Timer _InternalTimer; static Object _SyncLock = new Object(); static void Main(string[] args) { _InternalTimer = new Timer(InitProcess, null, 0, 5000); // Sync cycle is every
0 2024-04-26
编程技术问答社区
身份_插入和同步问题
我正在使用我当前项目中的SQL Server 2008,Visual Studio 2008,Linq,Ado.net.该项目在网络和台式机中实现. 现在我的问题是在Web DB和桌面DB之间的数据同步. 此处同步如下: 客户端插入的新数据已同步到服务器. 客户端中的更新数据已同步到服务器. 在这里让我向您展示我的桌子结构. 让我们假设我的表名是字段 的"客户" 客户 .............................. customerno,bigint,主键,而不是null,身份true(从1开始) firstName,... 姓氏... 现在我将在客户端中拥有相同的表,但是主要密钥身份将从20000开始.此主要密钥身份取决于客户端系统的数量.让我们考虑以下方案 server = customerno从1开始,表中有1个记录 客户端1 = customerno从20000开始,表格有2个记录 Client2 = Cu
4 2024-04-26
编程技术问答社区
在Windows 7上无法以标准用户身份创建信号灯
我不知道这是设计是否是设计,但是我似乎无法在Windows 7上创建一个新的信号量作为标准用户,也不能在此方面创建电源用户. SemaphoreSecurity semSec = new SemaphoreSecurity(); // have also tried "Power Users", "Everyone", etc. SemaphoreAccessRule rule = new SemaphoreAccessRule("Users", SemaphoreRights.FullControl, AccessControlType.Allow); semSec.AddAccessRule(rule); bool createdNew = false; // throws exception sem = new Semaphore(1, 1, SEMAPHORE_ID, out createdNew, semSec); return true;
8 2024-04-25
编程技术问答社区
我怎样才能使这两个线程同步?
这是类: public class Ticker { public event EventHandler Tick; public EventArgs e = null; public void TickIt() { while (true) { System.Threading.Thread.Sleep(300); if (Tick != null) { Tick(this, e); } } } 我正在Windows表单中运行两个线程: public partial class Form1 : Form { Ticker ticker1 = new Ticker(); Ticker ticker2 = new Ticker(); Th
14 2024-04-25
编程技术问答社区
电子邮件监控同步化
我正在编写一个C#程序,该程序使用POP3进行专门的GMAIL帐户来监视专用命令电子邮件并做出适当反应. 为了获得最大的可靠性,我将在全国各地的几台计算机上运行此程序. 我目前有一个种族条件,该程序的两个实例可以在其中一个删除它之前读取相同的消息,从而导致该消息进行两次处理. 如何确保精确处理每个命令一次? gmail的pop3访问仅用于仅提供每条消息一次(使reter和删除单个原子操作),但我不能再重现此行为. 计算机之间通信的唯一方法是SQL Server和HTTP服务器(我控制). 解决方案 我想到的一个选项是使用POP3的UIDL命令,并在SQL Server中使用一个已经处理过的UIDL列的表. 然后,在下载每条消息之前,守护程序会将UIDL插入表中,如果有错误,请跳过消息. (我假设SQL Server的插入命令是原子操作). 其他解决方案 首先,我必须承认我不知道POP3支持哪些命令,但是...如果您可以做出明确的" DELE"
10 2024-04-25
编程技术问答社区
Microsoft同步数据服务器版本2.0.0.0将安装在Global Assembly Cache中
我正在尝试将我发布的项目部署在客户端的计算机中,但是设置不断给我这个错误." Microsoft Synchronization Data Data Server版本2.0.0.0.0.0.0.0要安装在Global Assembly Cache中" 任何帮助都将不胜感激! 我在C#Visual Stuido 2010上工作,我的PC为64位,我的客户PC也为64位 谢谢 解决方案 您必须在客户端PC上安装Sync框架.也许还有其他一些SQL框架. 在x86平台上,x86安装程序包安装 将组件键入程序文件\ Microsoft SDKS \ Microsoft Sync 框架\ 2.1,并将托管DLL添加到全局汇编缓存 (GAC).在X64平台上,X86和x64安装 软件包安装到程序文件(X86)\ Microsoft SDKS \ Microsoft Sync 框架\ 2.1.平台和安装程序包的其他组合 在安装路径上可能会产生微小的变化. 如果您想在安装应用程序时
6 2024-04-25
编程技术问答社区
SemaphoreSlim 和 async/await
这有效: int _counter; readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); async void Button_Click(object sender, RoutedEventArgs e) { if (_semaphore.Wait(0)) { Title = $"{ ++_counter}"; await Task.Delay(1000); // simulate work Title = $"{ --_counter}"; _semaphore.Release(); } } 第一次单击后,忽略了更多按钮,直到完成工作为止. Tittle可以是1或0. 这不起作用 void Button_Click(object sender, RoutedEventArgs e) { if (_s
16 2024-04-25
编程技术问答社区
Monitor.exit在C#中的例外
这是一个我正在修复的大型多线程项目(我没有写).该应用程序挂在我正在追踪的一些锁上. 我通过Monitor.TryEnter替换了所有"锁"语句,因此我可以设置等待期.我偶尔会因Monitor.Exit. 而获得例外 原始样式是 private List _myVar= new List(); if (_myVar != null) { lock (_myVar) { _myVar = newMyVar; // Where newMyVar is another List } } 我替换了上述所有锁: if (_myVar != null) { bool lockTaken = false; try { Monitor.TryEnter(_myVar, new TimeSpan(0, 0, 5), ref lockTaken);
0 2024-04-25
编程技术问答社区
将Oracle数据库与SQL Azure进行同步
我想将本地Oracle数据库与SQL Azure同步.目前,我为我的本地应用程序设置了DTS软件包设置(Oracle和SQL Server都是本地的).如果我将SQL Server移至Azure,应该如何设计此过程? 解决方案 您必须选择搬到Azure: 移至Azure SQL数据库 在Azure中提供SQL Server VM 后者将具有与常规本地SQL Server相同的功能集.前者并不等于SQL Server. Azure SQL数据库只是数据库引擎部分,没有SSIS,SSA,复制,甚至TSQL并不完全等于SQL Server. 如果您使用VM方法,则可以安全地假设您仍然可以运行现有的软件包.但是,您需要考虑云中的Azure和本地Oracle数据库之间的延迟. 您还可以构建自定义解决方案来同步数据库,甚至使用同步框架.请参阅: database sync sync:oracle和sql compact 2-tier 只需将SQL Compact替换
2 2024-04-25
编程技术问答社区
串行任务执行器;这个线程安全吗?
我有一个我创建的类,以允许使用ThreadPool作为执行手段的任务的异步顺序执行.这个想法是,我将有多个实例在后台运行序列任务,但是我不想为每个实例有一个单独的专用线程.我想检查的是这堂课是否真的是安全的.这很简短,所以我想我会由这里的专家运营,以防我缺少明显的东西.我省略了不同动作类型的一些便利过载. /// /// This class wraps ThreadPool.QueueUserWorkItem, but providing guaranteed ordering of queued tasks for this instance. /// Only one task in the queue will execute at a time, with the order of execution matching the order of addition. /// This is designed as a lighter-weight alt
8 2024-04-24
编程技术问答社区
如何改变StoreGeneratedPattern并强制Entity Framework生成具有身份的插入语句?
我有服务器和客户端数据库,我需要在其中将某些服务器数据与客户端DataAbse同步.数据库架构与在服务器上具有身份(1,1)相同. 数据只能在服务器上创建.它必须使用服务器的ID插入客户端. CREATE TABLE [MyServer].[dbo].[Test1]( [Test1Id] [int] IDENTITY(1,1) NOT NULL, [Test1Value] [datetime] NOT NULL, CONSTRAINT [PK_Test1] PRIMARY KEY CLUSTERED ( [Test1Id] ASC ) ) ON [PRIMARY] CREATE TABLE [MyClient].[dbo].[Test1]( [Test1Id] [int] NOT NULL, [Test1Value] [datetime] NOT NULL, CONSTRAINT [PK_Test1] PRIMARY KEY CLUSTERED ( [Test1Id] AS
10 2024-04-24
编程技术问答社区
如何同步SQLServer数据库和MySQL数据库
我的场景: 我有两个应用程序.第一个是连接到MySQL数据库的网站,第二个网站是连接到SQL Server2008 R2数据库的桌面应用程序. 桌面应用程序在本地更新记录,MySQL数据库通过网站在线更新. 问题: 两个不同的数据库,当MySQL或SQL数据库进行更改时,我们如何在现场更新? 我想要的: 数据库应彼此同步(例如,如果在MySQL中进行了更改,则应更新SQL Server数据库,或者在SQL数据库中进行更改,则应更新MySQL数据库) ) ) > 任何人都可以建议一些代码,任何想法或任何解决此问题的解决方案吗? 解决方案 使用RESTFUL API将信息从MS SQL Server更新为MySQL Server. 其他解决方案 我要指出的第一件事是不可能完整而完美的同步.不幸的是,SQL Server中存在的数据类型将存在于MySQL中,反之亦然. 但是,假设数据类型非常简单并且模式相似,则有一些选项: 使用
6 2024-04-24
编程技术问答社区
带有ExitContext标志的WaitHandle.WaitOne可以在没有ContextBoundObject类的情况下使用吗?
MSDN文档表明可能还有其他使用ExitContext标志的方法.参见 解决方案 线索在此句子中. 即使您当前正在执行 不推论的课程中的方法 从contextBoundObject,例如字符串, 如果您可以处于非默认情况下 堆栈上有一个contextBoundObject 在当前的应用程序域中. 因此,基本上您可以从不subster ContextBoundObject的类中调用WaitOne,也不会有任何先入为主的观念,即A ContextBoundObject以任何方式参与了您的代码在非默认情况下,因为在呼叫中的某个地方堆叠了一个ContextBoundObject类的实例方法可能不为您运行. 在那个孤独的例外之外没有其他方法进入非默认同步上下文. 有一篇非常好的文章,上面有一些与同步上下文有关的其他信息,可以找到
0 2024-04-24
编程技术问答社区
实时、迭代应用的架构
对不起抽象问题,但是我正在寻找有关应用程序类型的一些示例/建议/文章,这些应用程序在周期中进行了一些同等的操作,并且每一个循环的迭代都应在某些时间内暴露其结果(例如, 10秒). 我的应用程序确实在外部WCF服务和本地数据库之间同步数据.在每次迭代中,应用程序都会检索数据传递请求的更改传递给WCF服务,并将数据库更改为更改,反之亦然.此应用程序最困难的要求之一是迭代应每十秒发射一次. 所以这是问题.我如何保证迭代将完成不超过10秒钟? 我想这种类型的应用程序称为实时应用程序(在实时操作系统的Maner中). 我们使用的DAL组件在连接超时行为上随机作用.因此DB操作可能需要比10秒更长的时间. 这是一个迭代的估计代码: Stopwatch s1 = new Stopwatch(); s1.Start(); Parallel.ForEach(Global.config.databases, new Para
8 2024-04-24
编程技术问答社区
在.NET中对内存映射文件的64位块进行原子解锁访问
我们需要非常有效地分享两个过程之间不断变化的信息.信息适合64位内存块 - 因此,在一个过程中,我们可以使用互锁的操作(甚至可能只是普通的读取/写入)来确保无锁定的信息访问正确的信息状态(不仅是部分编写). 我们如何在不锁定和同步的情况下将64位数据的64位数据编写和就绪块中的块来确保我们不读取部分书面数据? 不是在64位体系结构上单独写这种尺寸的原子吗?但是对齐可能会使它变得非原子,正确? So使用互锁操作(例如,通过此问题中描述的方式:如何在MMF上使用对内存映射的文件使用互锁的操作?但是,即使在这种情况下,我们也不会遇到对齐的问题(因为MMF是内存的块,因此.NET可能无法控制其像变量一样对齐)? )? 解决方案 我们如何在不锁定和同步的情况下将64位数据的64位数据编写和就绪块中的块来确保我们不读取部分书面数据?不是在64位体系结构上单独写这种尺寸的原子吗?但是对齐可能会使它变得非原子,正确? 内存映射的文件在封面下对齐,因此将数据对齐在MMF中.然后
0 2024-04-24
编程技术问答社区
在调试时,我怎样才能在不踏入每行代码的情况下确保输出?
在以下控制台应用程序中,如果我在最后一行go()上放置断点;并通过按F5来执行直到断点(在调试模式下),每个运行中的结果并不完全不同. 控制台可以空白(不会输出任何内容): ,或者它可以在另一个运行中仅输出结果的一部分: 或在极少数情况下,结果是"完整的"("实现"): 如果我通过F10进行调试(逐步)或F11(进入),则立即将执行结果输出到控制台窗口中. 为什么会有这种差异? 假设我正在使用3D Party库进行调试到我没有AVESS的源代码. 是否有可能在不介入其代码的情况下确保他们的输出? 控制台应用程序的代码: using System; using System.Threading; namespace _5_2 { class ThreadNaming { static void Main() { Thread.CurrentThread.Name = "main"; Thread wo
4 2024-04-24
编程技术问答社区
跨线程同步化/原子检查?
我需要创建一个可以调用任何线程(例如线程B)可以调用的方法调查器,该线程将在执行中的特定给定点上执行在主执行线程(thead A)上. 示例用法如下: static Invoker Invoker = new Invoker(); static void ThreadA() { new Thread(ThreadB).Start(); Thread.Sleep(...); // Hypothetic Alpha Invoker.Invoke(delegate { Console.WriteLine("Action"); }, true); Console.WriteLine("Done"); Console.ReadLine(); } static void ThreadB() { Thread.Sleep(...); // Hypothetic Beta Invoker.Execute(); } 调用
8 2024-04-23
编程技术问答社区
ISynchronizeInvoke vs SynchronizationContext vs mainForm.Invoke
我有一个工人课和一个主体/UI类.从UI类中,我在新的背景线程中创建一个工作类的新实例.该线程将其拖延回UI控件的一些更新.由于它们在不同的类中,因此我基本上将主体实例(此)和适当的代表传递到" Worker类"构造函数中.在构造函数中,我将MAIMFORM设置为ISynchronizeInvoke对象(称为_synch),然后在工作类中进一步向下i _synch.Invoke(theDelegate, new object[] { "new value" }). . 所有人都可以正常工作,但是后来我意识到也可以简单地做mainForm.Invoke(不使用ISynchronizeInvoke对象).两者有什么区别? 使事情变得更糟,我在一篇文章中读到ISynchronizeInvoke实际上不再需要太多了,既然SynchronizationContext已经很长了.我意识到我不明白这两个是用途.了解为什么我应该在这些物体上使用这些对象而不是直接在主体上使用的任何帮助将不胜感激
12 2024-04-23
编程技术问答社区