草庐IT

c# - WCF,BasicHttpBinding : Stop new connections but allow existing connections to continue

.NET3.5、VS2008、使用BasicHttpBinding的WCF服务我在Windows服务中托管了一个WCF服务。当Windows服务关闭时,由于升级、定期维护等,我需要优雅地关闭我的WCF服务。WCF服务的方法最多可能需要几秒钟才能完成,典型的数量是每秒2-5次方法调用。我需要以允许任何先前调用方法完成的方式关闭WCF服务,同时拒绝任何新调用。通过这种方式,我可以在大约5-10秒内达到安静状态,然后完成Windows服务的关闭周期。调用ServiceHost.Close似乎是正确的方法,但它会立即关闭客户端连接,而无需等待任何正在进行的方法完成。我的WCF服务完成了它的方法

c# - NHibernate - KeyNotFoundException : The given key was not present in the dictionary

更新:我已经解决了这个问题我有下面的代码块,它最终应该更新一条记录if(session.Contains(entity)){session.Evict(entity);}Session.Evict(entity)上的哪些错误带有KeyNotFoundException,以及以下消息:Thegivenkeywasnotpresentinthedictionary.我是不是误会了什么?我假设如果session.Contains(entity)为真,那么key应该存在,因此session.Evict()应该按预期工作?堆栈轨迹如下:System.Collections.Generic.Key

java - 发电机数据库 : Delete all items having same Hash Key

考虑下表:Table(documentId:HashKey,userId:RangeKey)我如何编写代码来删除具有相同documentId的所有项目,并且最好不检索这些项目。 最佳答案 目前,您不能仅通过传递Hash键来删除所有项目,要删除一个项目,它需要Hash+Range,因为这就是它的唯一性。Youhavetoknowbothyour(hash+range)todeletetheitem.编辑:这是来自DynamoDB文档的引用链接http://docs.aws.amazon.com/amazondynamodb/lates

c# - Entity Framework : Check all relationships of an entity for foreign key use

我有一个实体,我们称它为CommonEntity,它有一个在许多其他实体中用作外键的主键。随着应用程序的开发,这些链接将继续增长。我想要一种方法来查看CommonEntity是否可以安全删除(即它未被任何其他实体使用)。我知道我能做到if(!ce.EntityA.Any()&&!ce.EntityB.Any()...&&!ce.EntityN.Any()){//Delete}但我希望有一种方法可以自动检查所有关系,因为我不喜欢每次添加新关系时都必须返回并手动更改此代码的想法。也许EF4+中有一些我不知道的东西?我认为可以使用事务范围来尝试删除对象并在失败时将其回滚,但我不确定这种方法是

c# - new FileInfo(path).Name 与 Path.GetFileName(path)

哪个更好用,为什么?我的意思是这两个命令在哪些方面不同以及如何不同?性能、可读性……newFileInfo(path).Name或Path.GetFileName(path) 最佳答案 因为您不必为使用Path.GetFilename()创建新对象,所以性能会更好。这是两者的比较:代码:Path.GetFileName("G:\\u.png")IL:IL_0000:ldstr"G:\u.png"IL_0005:callSystem.IO.Path.GetFileName代码:newFileInfo("G:\\u.png").Name

c# - 当 new-able 使用 new T(),否则使用 default(T)

我正在研究C#泛型函数。错误时,如果泛型类型可以是new-able,返回newT(),否则返回default(T)。代码如下:privateTFunc(){try{//trytodosomething...}catch(Exceptionexception){if(Tisnew-able)//我知道对于那些使用newT()的人来说,它需要whereT:new()。这个问题是,如何在运行时判断这个? 最佳答案 您只需要检查该类型是否具有无参数构造函数。您可以通过以空类型作为参数调用Type.GetConstructor方法来实现。va

c# - Windows 窗体 : add new line to label if text is too long

我正在使用C#。有时,从Web服务返回的文本(我在标签中显示)太长,会在表单边缘被截断。如果表单不适合标签,是否有简单的方法向标签添加换行符?谢谢 最佳答案 如果您将标签设置为autosize,它会随着您放入其中的任何文本自动增长。为了使其以特定宽度自动换行,您可以设置MaximumSize属性。myLabel.MaximumSize=newSize(100,0);myLabel.AutoSize=true;经过测试并有效。如果您希望始终能够看到数据,可以将Label容器的AutoScroll属性设置为true。

c# - "value cannot be null parameter name: key"

我在调试我正在处理的网站时遇到“蓝屏死机”。错误信息是“valuecannotbenull.Parametername:key.”我正在尝试将formview绑定(bind)到gridview的选定索引。当我在我的selectedindexchanged方法中设置断点时,一切似乎都正确绑定(bind),我可以查看我的formview的值,但是当我继续运行它时,我收到上述错误消息。我尝试将datakeynames属性添加到formview并得到相同的错误消息。我在这里和谷歌搜索并看到了一些结果,但似乎没有一个能解决或与我的问题相关。部分代码如下:protectedvoidGridView

c# - Entity Framework new transaction is not allowed because there are other threads running in the session,多线程保存

我正在尝试将多线程进程的日志保存在数据库中,但出现以下错误:不允许新事务,因为session中还有其他线程在运行。在每个胎面我都有这个功能:internalboolWriteTrace(IResultresult,stringmessage,bytetype){SPC_SENDING_TRACEtrace=newSPC_SENDING_TRACE(message,Parent.currentLine.CD_LINE,type,Parent.currentUser.FULLNAME,Parent.guid);Context.SPC_SENDING_TRACE.AddObject(trac

c# - 为什么要使用 Create 方法而不是使用 "new"?

有什么优点,什么时候适合使用静态构造函数?publicclassMyClass{protectedMyClass(){}publicstaticMyClassCreate(){returnnewMyClass();}}然后通过创建类的实例MyClassmyClass=MyClass.Create();与仅拥有公共(public)构造函数并使用创建对象相反MyClassmyClass=newMyClass();如果Create方法返回类实现的接口(interface)实例,我可以看到第一种方法很有用……它将强制调用者创建接口(interface)实例而不是特定类型。