在IIS上,我可以为我的MVC项目创建一个站点,称之为Foo。
一旦我进行了设置,我可以右键单击它并“添加虚拟目录”栏。
如果我尝试将Bar设为虚拟目录,我会收到一条错误消息,说明这可能是一个应用程序。
所以我右键单击并将Bar设为应用程序。仍然没有。
问题是Foo和Bar的web.config存在冲突,说我的连接字符串之一已经定义了。
似乎我不能只执行<location path="." inheritInChildApplications="false">
,因为它无法在Config设置上使用。
我唯一的另一个想法是在Bar中创建一个web.release.config文件,并删除与Foo冲突的每一件事。这似乎很乏味,容易出错。
关于如何让我的网址看起来像我想要的任何建议(www.foo.com/Bar)?
答案 0 :(得分:0)
Bar只是一个目录?
您需要使用名称空间。一旦定义了命名空间,它们就不会使编译器在对象上发生冲突。然后在IIS中,您不必做任何事情,除了让你的应用程序foo。
namespace BarSpace {
[classes/code]
}
namespace FooSpace {
[classes/code]
}
答案 1 :(得分:0)
我建议在子web.config中的任何<clear />
标记之前添加<add ... />
标记。这将删除所有继承的添加字段,包括清除标记之前的每个添加字段。
这适用于ConnectionStrings,AppSettings等。基本上所有依赖于<add ... />
标记的内容。
<!--FOO web.config-->
<connectionStrings>
<add name="DataBase1" connectionString="..." providerName="..." />
<add name="DataBase2" connectionString="..." providerName="..." />
</connectionStrings>
<!--BAR web.config-->
<connectionStrings>
<clear />
<add name="DataBase1" connectionString="..." providerName="..." />
<add name="DataBase2" connectionString="..." providerName="..." />
</connectionStrings>