小编7wp*_*7wp的帖子

网站首次访问时需要非常长的时间才能启动(总共最多68秒)

我有一个ASP.Net应用程序,它第一次访问时需要非常长的时间来启动.我做了一些跟踪,发现这个函数花了57秒:

Boolean System.Web.Compilation.WebDirectoryBatchCompiler.CompileNonDependentBuildProviders(ICollection)

而该功能依次调用以下一个6次:

Void System.Web.Compilation.WebDirectoryBatchCompiler.CompileAssemblyBuilder(AssemblyBuilder)

我的问题是System.Web.Compilation.WebDirectoryBatchCompiler.CompileAssemblyBuilder做什么的?我的Web应用程序已经编译好了,我不知道它为什么要在启动时进行任何类型的编译工作.这是正常的吗?有什么事我不知道吗?

asp.net iis

4
推荐指数
1
解决办法
4967
查看次数

JavaScript:通过反射调用函数或调用属性

有没有办法通过反射在JavaScript中调用对象上的函数(或属性)?

让我们说在运行期间,我的代码已经确定objectFoo确实有一个名为'bar'的属性.现在我的代码知道了,接下来要做的就是调用它.通常我会这样做:var x = objectFoo.bar.但是'bar'是在运行时确定的,所以我需要使用反射来调用它.

javascript reflection

3
推荐指数
1
解决办法
2万
查看次数

如何检测对象是否在"使用"范围内?

请参阅我的示例代码:

var testObject = new SomeClass();
using (testObject)
{
     //At this point how can the testObject implicitly know 
     //if it is placed inside a 'using' scope?

     // In other words, how can testObject know that
     // .SomeAction() is being called from within a 'using' scope?

     testObject.someAction();
}
Run Code Online (Sandbox Code Playgroud)

.net c#

3
推荐指数
1
解决办法
581
查看次数

Adobe Flash/Flex for iOS与MonoTouch相比如何?

现在使用Adobe,您可以将Flash/Flex编译到iPhone和iPad.与MonoTouch相比如何?

Adobe解决方案是否真的编译为本机iOS代码?或者它只是一个运行代码的iOS Air容器,它能够通过Air容器访问natife iOS调用?我想知道Adobe与MonoTouch相比有什么不同.

我只是想知道这两种技术之间的差异.如果有的话.或者它们原则上的工作方式完全相同.

apache-flex adobe xamarin.ios ios

3
推荐指数
1
解决办法
1995
查看次数

如何从javascript源代码中标记/解析字符串文字

我正在开发一个C#程序,需要加载一些javascript代码,解析它并对代码中的字符串文字进行一些处理(比如用其他东西覆盖它们).

我的问题是,我很难设计一种优雅的方法来首先在javascript代码中找到字符串文字.

例如,看看下面的示例javascript代码.你是否看到Stack Overflow的代码highliter甚至能够在代码中挑选出字符串文字,并使它们变成红色?

我想基本上做同样的事情,除了我不会将它们变成不同的颜色,但我会对它们进行一些处理,并可能用完全不同的字符串文字替换它.

var dp = {
    sh :                    // dp.sh
    {
        Utils   : {},       // dp.sh.Utils
        Brushes : {},       // dp.sh.Brushes
        Strings : {},
        Version : '1.3.0'
    }
};

dp.sh.Strings = {
    AboutDialog : '<html><head><title>About...</title></head><body class="dp-about"><table cellspacing="0"><tr><td class="copy"><p class="title">dp.SyntaxHighlighter</div><div class="para">Version: {V}</p><p><a href="http://www.dreamprojections.com/syntaxhighlighter/?ref=about" target="_blank">http://www.dreamprojections.com/SyntaxHighlighter</a></p>&copy;2004-2005 Alex Gorbatchev. All right reserved.</td></tr><tr><td class="footer"><input type="button" class="close" value="OK" onClick="window.close()"/></td></tr></table></body></html>',

    // tools
    ExpandCode : '+ expand code',
    ViewPlain : 'view plain',
    Print : 'print',
    CopyToClipboard : 'copy to clipboard',
    About : '?', …
Run Code Online (Sandbox Code Playgroud)

javascript c# parsing

2
推荐指数
1
解决办法
2714
查看次数

如何检查ODBC通信,看看正在传递的SQL?

是否有一个Windows工具可用于检查通过特定ODBC数据源的任何SQL命令?

sql windows odbc

2
推荐指数
1
解决办法
503
查看次数

通过每 10 秒查询一次来缓存结果是一个坏主意吗?

我们有一种情况,我们在 API 上调用一个相当昂贵的函数。让我们称之为API.ExpensiveCall()

ExpensiveCall()在 Web 应用程序中经常被调用。虽然对于一个用户来说并不明显,但当您有 5 个左右的用户同时使用时,它会变得明显。

我们想缓存这些结果。但由于API.ExpensiveCall()对我们来说本质上是一个黑匣子,我们无法使缓存无效,知道何时刷新。

所以我们提出的解决方案是创建一个 Windows 服务,它会简单地API.ExpensiveCall()每十秒调用一次,然后将结果保存到 Web 应用程序已经在使用的本地数据库中。

这样无论网站上有 1 个用户还是 20+ 个用户都没有关系,ExpensiveCall()每 10 秒只调用一次。它是API.ExpensiveCall()所连接的外部系统上非常受控制的负载。

问题

我们的项目经理不同意这一点。出于某种原因,他认为每 10 秒定时刷新是一个坏主意,因为在他看来,这会给外部系统带来太多负载。

但是,如果我们对此不采取任何措施,并且保持原样而不进行任何缓存,则不仅会降低 Web 应用程序的性能,而且肯定会在外部造成每秒超过 1 次的 ExpensiveCall系统。这个数字会随着 Web 应用程序上的用户数量成倍增加。

我想问你这种缓存方式真的很糟糕吗?您是否听说过其他系统使用这种缓存方法?如果这是一个坏主意,当系统对您来说是一个黑匣子时,是否有其他更好的方法来缓存系统的结果?

编辑:

您的回复似乎表明我应该使用 ASP.Net 的内存缓存机制的超时功能。

我喜欢超时的想法。我现在看到的唯一(小)问题是,当超时到期并且是时候调用 ExpensiveCall() 时,它将成为阻塞调用。与查询本地表相反,本地表通过在单独的进程中不断刷新来保持最新。这是我觉得投票想法很有吸引力的地方。尽管我必须承认每 10 秒进行一次轮询确实感觉很奇怪,这就是为什么我对此持观望态度。

asp.net caching

2
推荐指数
1
解决办法
786
查看次数

servicestack使用RouteAttribute在AppHost VS装饰器中注册路由

我想知道ServiceStack注册路由的最佳做法是什么.

  1. 使用AppHost中的Routes.Add定义路由
  2. 使用DTO上的RouteAttiribute装饰器定义路线

我已经阅读了一些在AppHost中这样做的地方,因为它将路线定义与DTO分离.但我看到的大多数例子都是使用装饰器模式.

哪个更好?是否有任何争论使用一个而不是另一个?

asp.net servicestack

2
推荐指数
1
解决办法
295
查看次数

存储库应该是加载还是保存实体?

在我的设计中,我有从数据库中获取实体的Repository类(它是如何做的并不重要).但是为了将实体保存回数据库,使存储库也这样做是否有意义?或者更有意义的是创建另一个类(例如UnitOfWork),并让它有责任通过让它接受实体来保存东西,并通过调用save()它来告诉它继续前进并发挥它的魔力?

domain-driven-design

1
推荐指数
1
解决办法
276
查看次数

C#线程锁定并使用锁定对象; 锁定对象的正确范围应该是什么?

使用声明为类的字段而不是本地范围的锁定对象之间有区别吗?

例如:使用lockObject1lockObject2以下示例之间是否有区别?

public class Test()
{
   private Object lockObject1 = new Object();

   public void FooBar()
   {
       lock(lockObject1)
       {
          //Thread safe area 1
       }

       var lockObject2 = new Object();
       lock(lockObject2)
       {
           //Thread safe area 2
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

似乎大多数示例似乎总是瞥见所选锁定对象的范围的重要性.

c# multithreading locking

1
推荐指数
2
解决办法
3530
查看次数