0

我一直在关注 Scott Gutheries 博客,了解如何自动启动 ASP.Net 应用程序并遇到程序集名称问题。

首先,我一直关注的网站是:

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx

我已将以下代码添加到我的 applicationHost 配置文件中,您可能已经猜到,由于类型定义,它不起作用。

<serviceAutoStartProviders>
        <add name="PreWarmMyCache" type="MyWebSiteName.PreWarmCache, MyWebSiteName" />
</serviceAutoStartProviders>

我一直在寻找解决方案,并遇到了这个简洁的代码。

Dim _a as New MyApp.PreWarmCache()
_a.GetType().AssemblyQualifiedName

这会产生以下结果。

"MyApp.PreWarmCache, App_Code.<#########>, Version=0.0.0.0, Culture=neutral, PublickKeyToken=null"

我的问题来自上述程序集名称中的#########,因为它每次运行时都是唯一的,因此我不能在上面的 applicationHost 文件中使用它。

有没有办法让这个值固定,所以这个值变得固定而不改变?

4

2 回答 2

1

如果要控制为站点生成的程序集名称和版本号,则应在 Visual Studio 中使用 Web 应用程序项目而不是网站项目。您可以在 msdn 上阅读两种类型的项目:Web 应用程序项目与 Visual Studio 中的网站项目

对于应用程序项目,每个构建的程序集名称都不会更改,您可以轻松引用该程序集。

要从一种类型的项目迁移到另一种类型,您可以在此处找到建议:将网站项目转换为 Web 应用程序项目

于 2013-10-25T12:49:43.257 回答
0
  1. 将一个新的类库项目添加到您的 ASP.NET 网站解决方案并将其命名为Startup

  2. 在这个库中创建一个名为“ApplicationPreload”的新类,它实现了 IProcessHostPreloadClient。

  3. 在 ASP.NET 网站中添加新的Startup类库作为参考

  4. 编译您的解决方案,将 Startup.dll 添加到您网站的 Bin 目录

  5. 将以下内容添加到 </sites> 部分下的 applicationHost.config 文件中

    <serviceAutoStartProviders>
        <add name="ApplicationPreload" type="Startup.ApplicationPreload, Startup, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /
    </serviceAutoStartProviders>
    
于 2020-01-25T22:16:43.300 回答