我们有一个远程单独服务器在一个单独的Windows服务中运行(让我们称她的RemotingService).RemotingService的客户端是ASP.NET实例(很多).
目前,客户端远程调用RemotingService并在RemotingService调用被服务时阻塞.但是,远程服务变得越来越复杂(具有更多RPC调用和复杂算法),asp.net工作线程被阻塞了相当长的时间(4-5秒).
根据这篇msdn文章,这样做不会很好地扩展,因为每个远程RPC都阻止了asp.net工作线程.它建议切换到异步处理程序以释放asp.net工作线程.
异步处理程序的目的是释放ASP.NET线程池线程,以便在处理程序处理原始请求时为其他请求提供服务.
这看起来很好,除了远程调用仍然从线程池中占用一个线程.这是与asp.net工作线程相同的线程池吗?
我应该如何将我的远程单例服务器转换为异步系统,以便释放我的asp.net工作线程?
我可能错过了一些重要信息,如果您还有其他任何需要知道的问题,请告诉我.
两者之间有什么区别吗?
int on_exit(void (*function)(int , void *), void *arg);
Run Code Online (Sandbox Code Playgroud)
和
int atexit(void (*function)(void));
Run Code Online (Sandbox Code Playgroud)
除了on_exit使用的函数获得退出状态的事实?
也就是说,如果我不关心退出状态,是否有任何理由使用其中一个?
编辑:许多答案警告反对,on_exit
因为它是非标准的.如果我正在开发一个供公司内部使用的应用程序并保证在特定配置上运行,我应该担心这个吗?
在您的应用程序中,在提交或回滚之前保持事务处于打开状态的"长时间"是什么?分钟?秒?小时?
以及在哪个数据库?
因此,我们的Web服务器应用程序需要连接到数据库,而其他一些应用程序具有在启动时执行的启动脚本.
根据这些应用程序存储这些应用程序的名称/密码的最佳方法是什么?
Windows和Linux解决方案都很受欢迎!
我知道所谓的单元测试和集成测试的教科书定义.我很好奇的是,什么时候编写单元测试...我会编写它们以涵盖尽可能多的类.
例如,如果我有一个Word
类,我会为Word
该类编写一些单元测试.然后,我开始写我的Sentence
班,当它需要与互动Word
类,我会经常写我的单元测试,从而测试它们都Sentence
和Word
......至少在他们互动的地方.
有这些测试基本上已经成为集成测试,因为他们现在测试这些2班的整合,还是仅仅是一个单元测试,跨越2班?
在一般情况下,因为这种不确定的线,我很少会实际编写集成测试......或者是使用我的成品,看看是否所有的碎片正常工作实际集成测试,即使他们是手动的,很少重复超出范围每个功能?
我是否误解了集成测试,或者集成和单元测试之间是否真的差别很小?
感谢所有人的响应!我认为从各种各样的答案中可以清楚地看出,单元测试和集成测试之间的界限肯定是模糊不清的,也许尝试找出哪些是真正的焦点应该保留在代码上有点迂腐(谢谢@Rob Cooper ).此外,抱歉,但我不会接受任何答案,因为太多太好了,而且看起来非常主观.
我需要执行哪些步骤才能将asp.net 2应用程序从IIS7经典转换为集成模式?
我正在动态加载用户控件,将它们添加到Web表单的Controls集合中.
我想隐藏用户控件,如果它们在渲染时导致未处理的异常.
所以,我尝试连接到每个UserControl的Error事件,但似乎这个事件永远不会像为Page类那样触发UserControls.
做了一些谷歌搜索,似乎并不乐观.这里有什么想法?
可能重复:
ASP.NET:网站还是Web应用程序?
在Visual Studio中创建新的ASP.NET项目时,我应该选择创建:网站还是项目?
据我所知,Web应用程序项目是使用VS 2003在当天做到这一点的方法,但它现在仍适用吗?使用其中一个的警告是什么?
asp.net vs-web-site-project vs-web-application-project visual-studio
好吧,所以我一直在我的小Rails应用程序中重构我的代码以努力消除重复,并且通常使我的生活更轻松(因为我喜欢轻松的生活).这个重构的一部分,就是将我的两个模型共同的代码移动到一个模块,我可以在需要的地方包含它.
到现在为止还挺好.看起来它会成功,但我遇到了一个我不确定如何解决的问题.该模块(我称之为可发送模块)将成为处理传真,电子邮件或打印文档PDF的代码.因此,例如,我有一个采购订单,我有内部销售订单(富有想象力地缩写为ISO).
我遇到的问题是,我想要在加载对象后初始化一些变量(初始化为没有正确拼写的人:P),所以我一直在使用after_initialize钩子.没问题......直到我开始添加更多mixins.
我遇到的问题是,我可以after_initialize
在任何一个mixin中有一个,所以我需要在开始时包含一个超级调用,以确保after_initialize
调用其他mixin 调用.哪个好,直到我最终调用超级,我得到一个错误,因为没有超级调用.
这是一个小例子,如果我不够混淆:
class Iso < ActiveRecord::Base
include Shared::TracksSerialNumberExtension
include Shared::OrderLines
extend Shared::Filtered
include Sendable::Model
validates_presence_of :customer
validates_associated :lines
owned_by :customer
order_lines :despatched # Mixin
tracks_serial_numbers :items # Mixin
sendable :customer # Mixin
attr_accessor :address
def initialize( params = nil )
super
self.created_at ||= Time.now.to_date
end
end
Run Code Online (Sandbox Code Playgroud)
因此,如果每个mixin都有一个after_initialize调用,并且有一个超级调用,我该如何阻止最后一个超级调用引发错误?在调用super方法之前,如何测试super方法?
对于某些类型的SQL查询,辅助数字表可能非常有用.它可以创建为具有特定任务所需的行数的表,也可以创建为返回每个查询所需行数的用户定义函数.
创建这样一个函数的最佳方法是什么?