【问题标题】:Where are the Assemblies for an ASP.NET Web Site When Running IIS Express运行 IIS Express 时 ASP.NET 网站的程序集在哪里
【发布时间】:2013-08-14 13:42:03
【问题描述】:

我知道通过 ASP.NET 网站下的动态编译,文件隐藏的代码会被编译成程序集。运行 IIS Express 时,这些 DLL 存储在哪里?它只存在于内存中吗?我在 bin 文件夹或临时目录 (C:\Windows\Microsoft.NET\Framework[64]\v4.0.30319) 中看不到它们。通常我会在发布时预编译它们时生成它们。但是,在这种情况下,我看不到它们。

我错过了什么吗?

谢谢。

更新:

我确实在 C:\Users\Administrator\AppData\Local\Temp\Temporary ASP.NET Files\root 下看到了 dll

所以我认为它将它们存储在那里?这是 Visual Studio 2012,.NET 4.5。

【问题讨论】:

  • 我在 bin 文件夹中看到 DLL 类似于 EntityFramework 和其他 Microsoft 的,但我没有看到任何可以代表我拥有的三个页面的内容:About.aspx、Contact.aspx、默认.aspx。它们都是在 Visual Studio 中创建默认的“新网站”时生成的默认值。

标签: asp.net .net webforms dynamic-compilation


【解决方案1】:

这很可能不是您的 bin 文件夹。一切都被复制到一组临时文件夹中。

我为这个问题写了一个方法——

private string[] GetAssembly(string[] assemblyNames)
{
    string [] locations = new string[assemblyNames.Length];

    for (int loop = 0; loop <= assemblyNames.Length - 1; loop++)       
    {
         locations[loop] = AppDomain.CurrentDomain.GetAssemblies()
           .Where(a => !a.IsDynamic && a.ManifestModule.Name == assemblyNames[loop])
           .Select(a => a.Location)
           .FirstOrDefault();
    }
    return locations;
}

请参阅我在该主题上写的这篇文章 - http://nodogmablog.bryanhogan.net/2015/05/finding-the-location-of-a-running-assembly-in-net/

【讨论】:

    【解决方案2】:

    请参考:http://msdn.microsoft.com/en-us/library/e22s60h9%28v=vs.85%29.aspx

    它确实应该在您的 Bin 文件夹中。

    这是框架 4.5 的附加信息:http://msdn.microsoft.com/en-us/library/hh475319.aspx

    【讨论】:

    • 谢谢,但在 Bin 文件夹中看不到它。会不会在这里? C:\Users\Administrator\AppData\Local\Temp\Temporary ASP.NET Files\root
    • 在这里试试:C:\Users\\AppData\Local\assembly\。我知道,当我在浏览器中运行单击一次应用程序时,dll 就存储在那里。但我认为,这适用于不在 IIS 中运行的应用程序。另外,在inetpub 下查看。这变得有趣了……
    • 临时文件存储在此位置“C:\Users\\AppData\Local\Temp\Temporary ASP.NET Files\root\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 2011-03-19
    • 2021-08-26
    相关资源
    最近更新 更多