【问题标题】:ASP.NET VirtualDirectory app and website's /binASP.NET VirtualDirectory 应用程序和网站的 /bin
【发布时间】:2010-11-17 03:22:12
【问题描述】:

经过相当多的搜索,我认为我的情况已经不同了,我不得不真正提出一个问题!

我有一个供公众使用的网站和一个维护网站,用于在网站下方的虚拟根目录中保存数据。我希望他们都使用相同的 /bin 文件夹,但我无法让它工作。虚拟根具有不同的(更严格的)IP 访问控制。 IIS 看到了这一点:

www.abc.com ->      C:\Website
    /Maintenance -> C:\Maintenance

www.abc.com 有一个 C:\Website\bin 和 C:\website\web.config。

我希望 /Maintenace 也使用 C:\Website\bin。它们似乎“级联”了 web.configs - C:\Website\web.config 定义了一些东西并引用其 bin 文件夹中的程序集。当 /Maintenance 启动时,我收到有关无法解析 C:\Website\web.config 中引用的程序集的错误。 C:\Maintenance\web.config 也会被处理。

IIS6、ASP.NET 3.5、Win2k3

这可行吗?

【问题讨论】:

  • 所以 www.abc.com/Maintenance 是指向 C:\Website 的虚拟文件夹?
  • @Phil: 不,/maintenance 指向 c:\maintenance

标签: asp.net iis


【解决方案1】:

您可以从 C:\Maintenance\web.config 取消注册 DLL 文件。当我在 DotNetNuke 根网站下创建一个 sun virtral 目录时,我曾经这样做过。例如,如果您在 C:\website\web.config 中引用 HTTP 模块:

<httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

您可以从 C:\Maintenance\web.config 中删除引用:

<httpModules>
      <remove name="ScriptModule"/>
</httpModules>

【讨论】:

  • 是的,你可以。但例如,我在 c:\website\web.config 中有一个 HTTP 处理程序,它位于 C:\website\bin 的 DLL 中。当 /Maintance 启动时,我在处理 c:\website\web.config 时遇到错误,无法找到处理程序所在的程序集。
  • 然后删除所有 HTTP 处理程序: 发布您的 c:\website\web.config ,我会告诉你如何清洁它。
【解决方案2】:

我不太清楚您的问题的目标是什么,但是如果您希望处理 bin 目录之外的其他目录以获取维护站点的程序集引用,则可以使用&lt;probe&gt; web.config 运行时配置的元素。

它允许您指定其他路径来解析引用,而不仅仅是“bin”。由于这与to this question asked earlier today 非常相似,因此我将其链接起来,以便您可以在那里查看示例和答案。希望对您有所帮助。

【讨论】:

  • @womp:感谢您的链接。我的意图很简单——我想将相同的代码库用于公共网站并通过受限 URL 进行数据维护。虚拟目录让我限制 IP 范围以接受来自的请求。因此,在网站下具有这些限制的虚拟根似乎是一种合乎逻辑的方式。现在分享代码库...
【解决方案3】:

您必须在虚拟目录/应用程序中创建一个单独的 bin。

【讨论】:

  • 这就是我一段时间以来所做的事情,但这意味着我必须从 website/bin 保留 DLL 的副本,以便在 /maintenace 激活时 website/web.config 处理工作。跨度>
  • 如果您找到了更好的方法,除了 GAC,请告诉我,因为这太麻烦了。
【解决方案4】:

我最终做的是将 /Maintenance 移到 C:\Website 下并完全摆脱虚拟目录。这允许他们共享相同的 /bin 并且我最终得到相同的 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 2010-09-10
    • 2010-09-05
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多