ASP.NET使用多个web.configs

问题描述 投票:0回答:2

IIS结构

   MyWebsite     
   ..
   ..
   applications\  <--folder
       \website1  <--web 1 contains its web.config file
       \website2  <--web 2 contains its web.config file
   ..
   bin\  <- contains both the dlls ABC.abc and DEF.def 
   web.config

根web.config包含

   <namespaces> 
     <add namespace="ABC.abc" />
     <add namespace="DEF.def" />
   </namespaces>

当根网站加载时,它可以正常工作。但是在加载website1 \ website2时会抱怨

编译器错误消息:CS0246:找不到类型或名称空间名称'ABC'(您是否缺少using指令或程序集引用?)

如果我将两个dll添加到website1和website2的bin文件夹中,它将起作用,但是我不想将这些dll复制到我的所有项目中。

加载网站1项目时是否可能不加载根web.config文件,仅使用网站1项目中的web.config吗?或在加载website1应用程序时跳过加载dll(ABC.abc)的另一种方法?

asp.net iis web-config
2个回答
0
投票

这不是在网站下将两个项目作为文件夹部署的正确方法。这可能会导致配置冲突。现在您将要在网站下托管website1 / 2,那么您应该将它们部署为应用程序,并且必须将dll复制到website1和website2。

https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/application/

如果您不想将这些dll复制到所有项目中。然后,您可以尝试将两个项目集成到一个项目中。当然,您可以将您的dll注册到GAC或使用<probing>


0
投票

通常,最佳做法是使用IIS部署在网站下添加应用程序只需右键单击网站并添加应用程序它应该工作

但是在您的情况下,我认为您可能正在使用任何提供者共享的网站

这里您可以做的是

MAIN ==>您的主站点不应是服务器端网站,而必须是带有HTML和(Javascript)的静态网站

Main2 =>将是网站内具有您当前主应用程序和Web.Config的虚拟路径

Sub 1 => Sub 1将是网站内的虚拟路径,它将包含带有Web.Config的服务器端app1

Sub 2 =>将是网站内的虚拟路径,其中包含带有Web.Config的服务器端app2

您可以通过以下方式使用MAIN重定向到Sub1和Sub2

查询参数说您的网站路径是www.x.com现在您需要的是在MAIN静态站点中编写一个脚本,该脚本将读取查询参数现在,如果Queryparam为null或没有val,则重定向到Main2虚拟站点。如果Queryparam是app1,则重定向到Sub1虚拟站点。如果Queryparam是app2重定向到app2虚拟站点。

最后,您的腰围可能看起来像这样

1。 www.x.com2. www.x.com?app=app13. www.x.com?app=app2

© www.soinside.com 2019 - 2024. All rights reserved.