【问题标题】:Global.asax Application_start fired on every actionGlobal.asax Application_start 在每个动作上触发
【发布时间】:2010-11-24 21:13:36
【问题描述】:

我正在做一个 MVC 项目,性能很好。

在 application_start 上,数据库被索引以用于 lucene.net 搜索(并且在对象的每次更改时,索引都会被扩展)。但是 application_start 在我在页面上调用的每个操作上运行。

为什么它不止一次触发 application_start ?当我知道在哪里看时,我会发布任何代码;)

我不确定 web.config 是否会导致这种行为...

解决方案: Lucene.net 将其索引写入 bin 文件夹,更改路径后应用程序不再融化我的脸 :)

【问题讨论】:

    标签: asp.net asp.net-mvc web-applications lucene.net


    【解决方案1】:

    这可能是因为当 Lucene 构建它的索引时,它修改了一些会导致 AppDomain 卸载的文件(web.config、global.asax、bin 文件夹等)。

    【讨论】:

    • 在 web.config 中没有关于 lucene 的内容,但是在 bin 文件夹中有一个名为 _indexes 的文件夹......也许这是来自 lucene?设置 lucene 的人已经走了(外部程序员),并且在接下来的两周内不可用。
    • 如果 bin 文件夹被修改,应用程序将重新启动。您需要重新配置 Lucene 以将其索引存储在其他地方。
    【解决方案2】:

    web.config 很可能会以某种方式被修改。
    要追踪它,请尝试设置 web.config 的只读属性并查看是否有任何错误。

    真正要查看的主要位置是 web.config,也可能在 sobfolders 中。

    【讨论】:

    • 应用程序启动后,我将 web.config 和 bin 文件夹 + 子文件夹设置为只读,仍然调用 application_start :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2012-05-19
    相关资源
    最近更新 更多