Tag: visual studio 2010

连接后如何测试TCPClient连接断开?

我一直在争论一个问题整整3天我找不​​到任何解决方案,请帮忙:) 我使用Visual Studio 2010和C#语言。 我有一台像服务器一样工作的设备,它在非常不规则的时间段内发送一些数据(不可能定义任何读取超时)。 我写了一个TCP客户端来连接到该服务器并读取数据。 它工作正常,但是当网络出现问题并且服务器变得不可用时(例如,当我从计算机插入网络电缆时),应用程序需要大约10秒才能“注意到”没有连接到服务器并抛出例外。 (我不知道为什么到了10秒?它定义在哪里?我能改变吗?) 我希望反应更快 – 在连接断开后一秒钟之后说。 然而谷歌搜索答案并没有为我提供任何有效的解决方案。 测试代码如下,我尝试在2个线程上进行:一个是读取数据,第二个是查找连接状态,当它被破坏时应该报警。 它既不适用于TCPClient也不适用于Socket类。 我试图用tcpClient.SendTimeout = 100;读/写一些数据tcpClient.SendTimeout = 100; 和stream.WriteTimeout = 100; 但它似乎没有用。 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Threading; namespace TCPClient { class Program { static volatile bool _continue = true; static TcpClient tcpClient; static NetworkStream stream; […]

ClickOnce – 无法发布,因为项目无法构建

当我尝试发布我的(WPF,C#)应用程序时,我收到以下错误: 无法发布,因为项目无法构建。 找不到文件’obj \ x86 \ Debug \ MyAPP.exe’ 无论发布在哪里,我都会收到这些错误:发布向导,构建菜单或右键单击项目 – 发布。 首先它工作正常,但我做了以下事情: 我将计算机的日期更改为10/10/2013,我正在尝试别的东西。 我忘了这个,然后点击构建。 然后我在电脑上设置了正确的日期。 之后我得到了这些错误。 每次我单击运行Visual Studio构建项目是否有项目更改。 我也注意到,当我在2013年10月10日之后设置日期时,它可以正常工作。 我猜我正在寻找我的项目中设置此日期的一些设置。 我尝试了构建,重建,清洁解决方案。

IEnumerable与IQueryable的业务逻辑或DAL返回类型

我知道之前已经问过这些问题,我首先会列出其中一些问题(到目前为止我已阅读过的): IEnumerable vs IQueryable List,IList,IEnumerable,IQueryable,ICollection,哪个是最灵活的返回类型? 返回IEnumerable 与IQueryable IEnumerable 作为返回类型 https://stackoverflow.com/questions/2712253/ienumerable-and-iqueryable 业务逻辑与代码的视图 WPF IEnumerable vs IQueryable 作为DataSource IEnumerable VS IList VS IQueryable 我的服务应该返回什么界面? IQueryable,IList,IEnumerable? 我应该从DAL返回IEnumerable 还是IQueryable ? 正如你所看到的那样,关于这个主题的SO本身有一些很好的资源,但是有一个问题/部分的问题,我仍然不确定是否已经阅读了这些内容。 我主要关注IEnumerable和IQueryable问题,更具体地说是DAL和它的消费者之间的耦合 。 我已经找到了关于这两个接口的不同观点。 但是,我关注的是DAL返回IQueryable的含义。 据我所知,IQueryable建议/暗示有一个Linq提供商。 这是第一个问题 – 如果DAL突然需要来自非Linq提供的数据源,该怎么办? 以下方法可行,但它更像是黑客攻击吗? public static IQueryable GetAll() { // this function used to use a L2S context or similar to return data […]

尝试运行Fluent NHibernate教程示例时出现运行时错误

我在http://wiki.fluentnhibernate.org/Getting_started上完成了Fluent NHibernate教程,该项目编译得很好。 但是,我收到运行时错误,我似乎无法解决它。 您可以在教程中看到的CreateSessionFactory方法中发生错误。 这里是: private static ISessionFactory CreateSessionFactory() { return Fluently.Configure() .Database ( SQLiteConfiguration.Standard .UsingFile(DbFile) ) .Mappings(m => m.FluentMappings.AddFromAssemblyOf()) .ExposeConfiguration(BuildSchema) .BuildSessionFactory(); } 我认为最有帮助的事情是给你从最外层exception到最内层exception的exception链(这是一个真正的单词): An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail. An invalid or incomplete configuration was used while creating a SessionFactory. Check […]

使用强命名程序集中定义的旧版本接口创建客户端激活对象时的System.InvalidCastException

我有一个关于.Net Remoting,版本控制和创建客户端激活对象的查询。 这是场景: 有2个接口,驻留在它们自己的程序集“SharedTypes”中:IServer和IAccount。 IServer包含返回字符串的方法“GetStatus”和返回IAccount类型的“CreateAccount”。 这是作为v1.0.0.0注册到GAC中的。 服务器应用程序引用SharedTypes并使用具体类Server和Account实现IServer和IAccount。 这些是MarshalByRefObject对象。 Server应用程序将Server类编组为单例对象。 客户端应用程序引用SharedTypes并成功通过IServer接口连接到可远程服务器对象。 在这里,我可以成功调用GetStatus和CreateAccount(它返回一个客户端激活的对象)。 到目前为止一切都好。 现在我将SharedTypes的版本增加到v2.0.0.0并注册到GAC,删除旧的v1.0.0.0版本。 Server应用程序是针对此版本构建的,但客户端不是。 现在,当我运行客户端应用程序时,它会按预期抱怨System.IO.FileNotFoundException,即它无法在GAC中找到v1.0.0.0的SharedTypes。 如果我在客户端的exe目录中复制SharedTypes的v1.0.0.0,则客户端应用程序最终会绑定到此(在GAC查找失败后)。 客户端应用程序启动,我可以成功调用IServer对象上的GetStatus(通过单例对象)。 但是,如果我调用CreateAccount – 它应该返回一个客户端激活的对象,我会得到以下exception: System.InvalidCastException: Return argument has an invalid type. at System.Runtime.Remoting.Proxies.RealProxy.ValidateReturnArg(Object arg, Type paramType) at System.Runtime.Remoting.Proxies.RealProxy.PropagateOutParameters(IMessage msg, Object[] outArgs, Object returnValue) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at SharedTypes.IServer.GetAccount() 我的问题是为什么在服务器上调用GetStatus从客户端(使用v1.0.0.0)激活单例对象不会抛出此exception,而通过CreateAccount创建客户端激活对象呢? 由于这两种类型都是在服务器上创建的,我认为GetStatus调用会产生相同的exception吗?

如何创建递归函数来复制所有文件和文件夹

我正在尝试创建一个函数,将递归复制源文件夹及其中的所有文件和文件夹到其他位置。 目前,我必须在主文件夹中定义每个文件夹,这使得代码变得臃肿和冗余。 这样做更有效的方法是什么?

由于以下错误,检索具有CLSID的组件的COM类工厂失败:80070005拒绝访问

我在IIS中托管了一个asp.net。 使用Com库“Microsoft Word 14.0对象库”。 我使用它将单词Document转换为HTML,在我的机器上它可以工作。 我的机器上有Office 2007。 但是当我尝试在服务器上运行我的应用程序时,它会给我以下错误 由于以下错误,检索具有CLSID {000209FF-0000-0000-C000-000000000046}的组件的COM类工厂失败:80070005拒绝访问。 (来自HRESULT的exception:0x80070005 E_ACCESSDENIED))。 我已授予aspnet用户和其他用户完全访问权限的所有权限,但这不起作用,

从文本框中删除数字

我在文本框“84,8441546842904”中有这个数字如何在按钮点击事件中转换为84,8或84,84?

构建错误:“表达式太长或太复杂,无法编译”

每当我构建一个特定的解决方案时,我会在错误列表窗口中随机获得一个“表达式太长或者很复杂”。 但是,错误指向的唯一项是特定项目,而不是项目中的文件或特定LOC。 当我遇到这个时,我’干净’,然后我重启VS,这似乎解决了它。 关于是什么导致这个的任何想法? 这个特殊的解决方案有50个项目。

如何在使用Perforce在Visual Studio中重命名文件时保留更改历史记录

我知道有几个关于使用版本控制系统重命名文件的问题。 但我没有找到特殊版本控制系统Perforce的满意答案。 我的问题:当我在 Visual Studio中重命名时,是否有插件/解决方案可以保存我的C#代码文件的版本历史记录? 编辑:目前我正在使用VS2P4插件。 Edit2:我找到了一个更短的方法来重命名文件: 在资源管理器中打开包含文件夹(在解决方案资源管理器中右键单击在Windows资源管 选择文件,然后右键单击Perforce-> Show in P4V。 使用所选文件执行正常的重命名/移动操作。 这种情况比在P4V中的Perforce Depot中导航要短,直到找到正确的文件。 但当然我正在寻找一种更短的方式。 编辑3:有没有办法在VS中直接进行“在P4V中显示” 文件选择 ?