小编gro*_*wse的帖子

MVC4 StyleBundle:你能在Debug模式下添加缓存破坏查询字符串吗?

我有一个MVC应用程序,我正在使用StyleBundle该类来渲染CSS文件,如下所示:

bundles.Add(new StyleBundle("~/bundles/css").Include("~/Content/*.css"));
Run Code Online (Sandbox Code Playgroud)

Debug我遇到的问题是,在模式下,CSS网址是单独呈现出来的,我有一个网络代理,可以积极地缓存这些网址.在Release模式中,我知道查询字符串被添加到最终URL以使每个版本的任何缓存无效.

是否可以配置StyleBundleDebug模式中添加随机查询字符串以产生以下输出以解决缓存问题?

<link href="/stylesheet.css?random=some_random_string" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

caching bundle asp.net-mvc-4

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

在具有多个Web服务器的现有.NET/SQL Server堆栈上实现Lucene

我想看看Lucene是否为我目前管理的网站提供全文搜索解决方案.该站点完全基于SQL Server 2008/C#.NET 4技术构建.我想要索引的数据实际上非常简单,每条记录只有几个字段,其中只有一个字段可以实际搜索.

我不清楚我需要使用的最佳工具集是什么,或者我应该使用的架构是什么.特别:

  1. 我应该把索引放在哪里?我见过人们建议把它放在网络服务器上,但这对于大量的网络服务器来说似乎很浪费.当然,集中化会更好吗?

  2. 如果索引是集中的,我会如何查询它,因为它只存在于文件系统上?我是否必须将其有效地放在所有网络服务器都可以看到的网络共享上?

  3. 是否有任何预先存在的工具会按计划逐步填充Lucene索引,从SQL Server数据库中提取数据?在这里推销我自己的服务会更好吗?

  4. 当我查询索引时,我是否应该只是拉回一堆记录ID,然后我返回到DB以获取实际记录,或者我是否应该直接从索引中提取搜索所需的所有内容?

  5. 尝试在这种味道环境中实现像Solr这样的东西有价值吗?如果是这样,我可能会给它自己的*nix VM并在Tomcat中运行它.但我不确定Solr会在这种情况下给我买什么.

.net sql-server lucene lucene.net

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

Mini MVC profiler:似乎显示每个静态资源的配置文件时间

我刚刚开始使用mvc-mini-profiler(http://code.google.com/p/mvc-mini-profiler/),我觉得它很棒.但是,我在使用它时会遇到一些奇怪的行为.

我有一个在IIS7.5上运行的ASP.NET Webforms站点,出于某种原因,当我加载启用了探查器的页面时,我不仅得到了aspx页面的时间测量,而且我也得到了随机css和页面上的js资源.

aspx配置文件正常工作,SQL查询也正确分析.但是,如图所示,我还得到了一堆其他结果,这些结果似乎是静态CSS和JS文件的结果.据我所知,这些是由IIS静态提供的,因此甚至不应该为这些调用探查器代码.

我的Global.asax的相关部分是:

    protected void Application_BeginRequest()
    {
        MiniProfiler profiler = null;

        // might want to decide here (or maybe inside the action) whether you want
        // to profile this request - for example, using an "IsSystemAdmin" flag against
        // the user, or similar; this could also all be done in action filters, but this
        // is simple and practical; just return null for most users. For our test, we'll
        // profile only for local requests (seems …
Run Code Online (Sandbox Code Playgroud)

c# asp.net mvc-mini-profiler

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

如何在 Tokio 运行时上下文中从异步方法调用的非异步方法中等待 future?

我正在使用 Tokio 1.1 来做异步事情。我有一个async mainwith #[tokio::main],所以我已经在使用运行时进行操作。

main调用一个非异步方法,我希望await在未来(具体来说,我正在从数据融合数据帧收集)。这种非异步方法具有由特征规定的签名,该特征返回结构体,而不是Future<Struct>. 据我所知,我无法将其标记为异步。

如果我尝试打电话df.collect().await;,我会得到

只允许在async函数和块内部

来自编译器的错误,指出我await在其中调用的方法不是async.

如果我尝试block_on从一个新的运行时开始,未来是这样的:

tokio::runtime::Builder::new_current_thread()
    .build()
    .unwrap()
    .block_on(df.collect());
Run Code Online (Sandbox Code Playgroud)

我遇到运行时恐慌:

无法从运行时内部启动运行时。发生这种情况是因为函数(如block_on)试图在当前线程用于驱动异步任务时阻止该线程。

如果我尝试futures::executor::block_on(df.collect()).unwrap();,我会遇到新的运行时恐慌:

“当前未在 Tokio 0.2.x 运行时上运行。”

这很奇怪,因为我使用的是 Tokio v1.1。

这感觉比应该的更难。我处于异步上下文中,感觉编译器应该知道这一点并允许我.await从方法内调用 - 唯一的代码路径从块内调用此方法async。有没有一种简单的方法可以做到我所缺少的?

future rust async-await rust-tokio

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

Pika + RabbitMQ:将basic_qos设置为prefetch = 1仍然会消耗队列中的所有消息

我有一个python worker客户端,它会旋转10个worker,每个worker挂钩到RabbitMQ队列.有点像这样:

#!/usr/bin/python
worker_count=10

def mqworker(queue, configurer):
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='mqhost'))
    channel = connection.channel()
    channel.queue_declare(queue=qname, durable=True)
    channel.basic_consume(callback,queue=qname,no_ack=False)
    channel.basic_qos(prefetch_count=1)
    channel.start_consuming()


def callback(ch, method, properties, body):
    doSomeWork();
    ch.basic_ack(delivery_tag = method.delivery_tag)

if __name__ == '__main__':
    for i in range(worker_count):
        worker = multiprocessing.Process(target=mqworker)
        worker.start()
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,尽管在通道上设置了basic_qos,但是第一个启动的工作人员接受队列中的所有消息,而其他人则闲置在那里.我可以在rabbitmq界面中看到这一点,即使我设置worker_count为1并在队列中转储50条消息,所有50条消息进入"未确认"桶,而我预计1会成为未确认的,而另外49条将成为准备.

为什么这不起作用?

qos rabbitmq pika

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

Django管理员TabularInline - 是否有一种添加自定义html列的好方法?

我有一个Entry包含简单属性的model():

@property
def image(self):
        return str(self.id)+"_"+self.round.season.name+"_"+self.round.theme+"_"+self.person.name
Run Code Online (Sandbox Code Playgroud)

我用它来构建磁盘上特定图像文件的名称.所以我知道会有一个图像/path/to/images/(model.image()).jpg

我可以在管理页面上的TabularInline布局中显示原始图像属性本身,方法是将其添加到readonly_fields集合中,但是如何获取一个包含模型属性的自定义html的列?

例如

<img src="/images/{{model.image}}.jpg" />
Run Code Online (Sandbox Code Playgroud)

django admin

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

ASP.NET中长时间运行的后台进程 - Application_Start还是单独的进程?

我正在开发一个.NET 4应用程序,它需要后端工作线程才能运行.该主题主要包含以下代码:

while (true) {
    //Check stuff in database
    //Do stuff
    //write to database / filesystem
    Thread.sleep(60000)
}
Run Code Online (Sandbox Code Playgroud)

ASP.NET应用程序只是数据库的前端.

我的问题在于放置这个工作循环的最佳位置.看来我的两个选择是(1)将它从Application_Start方法中分离出来,然后让它运行,或者(2)将它捆绑在一个单独的进程中(Windows服务?)

(1)显然需要ASP.NET代码中的一些逻辑来检查它是否仍在运行,因为IIS可能会将其终止.整个应用程序逻辑在一个易于部署的软件包中也非常简洁.(2)更加隔离,但感觉更麻烦.

什么是最好的方法?

.net asp.net threadpool

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

是否可以使用DataType作为DataType.Currency强制MVC3字段的货币

我正在编写一个MVC3应用程序,它从数据库中读取大量货币数据.我的问题是这些金额都是不同的货币.

如果我设置这样的字段类型:

[DataType(DataType.Currency)]
public Amount{ get; set;}
Run Code Online (Sandbox Code Playgroud)

我得到小数位和货币符号,看起来不错,但它默认为用户的本地货币.美国用户看到$423.29GB用户看到£423.29.我可以通过<globalization culture="{something}">在Web.config中使用a来覆盖货币,但这会全局设置所有货币字段.

标记字段的最简单方法是什么,以便使用正确的小数位和货币符号进行渲染?

在一个理想的世界里,我希望能够做到这样的事情(美元):

[DataType(DataType.Currency, culture="en-us")]
public Amount{ get; set; }
Run Code Online (Sandbox Code Playgroud)

并且总是呈现为$439.38,但内置注释是不可能的.

globalization currency data-annotations asp.net-mvc-3

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

在 musl 1.2.0 上交叉编译 rust 项目时“未定义对`__stat_time64'的引用”

我正在尝试交叉编译一个 Rust 项目,arm-linux-musleabihf并且在使用musl-cross-make. rust 项目依赖于libgit2,这似乎是导致问题的依赖。

使用:

  • 最新的锈(1.43.1 通过rustup
  • arm-unknown-linux-musleabihf目标
  • 最新musl-cross-makeTARGET=arm-linux-musleabihf
  • 指向TARGET_CC_linux_arm-unknown-linux-musleabihfCARGO_TARGET_ARM_UNKNOWN_LINUX_MUSLEABIHF_LINKER/opt/musl-cross-make/output/bin/arm-linux-musleabihf-gcc

构建时出现错误:

error: linking with `/opt/musl-cross-make/output/bin/arm-linux-musleabihf-gcc` failed: exit code: 1
...
  = note: /opt/musl-cross-make/output/bin/../lib/gcc/arm-linux-musleabihf/9.2.0/../../../../arm-linux-musleabihf/bin/ld: /tmp/rustcvSvGAJ/liblibgit2_sys-e56c2f9bd024a0a9.rlib(odb.o): in function `git_odb__add_default_backends':
          odb.c:(.text.git_odb__add_default_backends+0x24): undefined reference to `__stat_time64'
          /opt/musl-cross-make/output/bin/../lib/gcc/arm-linux-musleabihf/9.2.0/../../../../arm-linux-musleabihf/bin/ld: /tmp/rustcvSvGAJ/liblibgit2_sys-e56c2f9bd024a0a9.rlib(config.o): in function `git_config_add_file_ondisk':
          config.c:(.text.git_config_add_file_ondisk+0x34): undefined reference to `__stat_time64'
          /opt/musl-cross-make/output/bin/../lib/gcc/arm-linux-musleabihf/9.2.0/../../../../arm-linux-musleabihf/bin/ld: /tmp/rustcvSvGAJ/liblibgit2_sys-e56c2f9bd024a0a9.rlib(config_file.o): in function `config_file_read':
          config_file.c:(.text.config_file_read+0x48): undefined reference to `__stat_time64'
...etc...
Run Code Online (Sandbox Code Playgroud)

看起来链接器在解析特定于 musl 的time64符号时遇到了困难,目前尚不清楚原因。

这在以下情况下工作正常:

  • x86_64-linux-musl …

arm cross-compiling rust musl

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

为什么MiniProfiler加载jquery-1.7.1,即使我已经在页面上加载了它?

我已经在ASP.NET WebForms页面上实现了StackExchange MiniProfiler,该页面已经引用了jQuery的v1.7.1.jQuery文件是本地托管的,所以我的masterfile看起来像这样:

<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<%= MiniProfiler.RenderIncludes() %>
Run Code Online (Sandbox Code Playgroud)

但是,当我查看生成的输出源时,我得到类似的东西

<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">    
    ...
    load('/app/mini-profiler-resources/jquery.1.7.1.js?v=tNlJPuyuHLy/d5LQjyDuRbWKa0weCpmO3xkO6MH4TtA=', initMp);
</script>
Run Code Online (Sandbox Code Playgroud)

查看开发工具网络选项卡,我可以看到它将两个请求放入,一个用于Scripts/jquery-1.7.1.min.js另一个用于/app/mini-profiler-resources/jquery.1.7.1.js

这不是一个相当重要的冗余问题吗?如何阻止MiniProfiler包括请求,下载和解析jQuery库的另一个副本?

asp.net jquery mvc-mini-profiler

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