2009-10-04 134 views
17

有没有在该网站的子文件夹运行ASP.NET网站的一种方式?运行ASP.NET网站的子目录下,

作为一个例子,假设我想在我的网站上的一个名为“wiki”的文件夹中运行screwturn wiki(http://www.screwturn.eu/),我可以更改screwturn网站的web.config,告诉它它运行在“维基”文件夹? (比如说“〜/”=“/ wiki /”)

然后wiki会找到它的程序集在“/ wiki/bin”的“〜/ bin”中,对于下面的所有其他文件夹新的根。

+1

我最终为wiki创建了一个新的子域,因此该网站将成为根网站。 – 2009-10-22 07:27:08

回答

13

一块蛋糕,您可将虚拟目录添加到IIS网站的根在你的站点的路径指向它或将它的在网站根目录的物理目录,然后把它变成通过右键应用在IIS管理控制台上点击它,转到属性并单击应用程序名称旁边的“创建”。

+0

虽然我没有提到它,但我没有控制Web服务器。但这与我所采用的解决方案最接近,即创建子域(wiki.mydomainname.org)。我会将其标记为答案,因为如果我有权访问ISP的IIS框,就可以看到您的建议。 – 2009-10-22 07:29:07

+0

我厌倦了这一点,但现在IIS抱怨说,无法找到登录页面的类背后的代码。子网站是否继承与父级相同的dll?因为子站点的页面类中的登录被编译为主站点dll,因为它与VS中的所有项目都是相同的。 – James 2011-08-02 15:05:28

+1

您需要在该文件夹中有一个完整的自包含应用程序,否则它将查找不存在的bin目录。 – 2011-08-02 20:11:53

-1

简短的回答是YES就可以了。无需在Web.Config中指定文件夹的位置。

+0

我假设你在wiki文件夹中有一个web.config文件。 “/ wiki/bin”由运行时自动定位。 – 2009-10-04 09:58:46

+0

但页面无法加载,声称“该文件'/MasterPage.master'不存在。” aspx页面指令具有MasterPageFile =“〜/ MasterPage.master”。问题是我如何将resove改为“/wiki/MasterPage.master”而不是“/MasterPage.master”。 – 2009-10-04 10:01:15

+0

是否将“wiki”文件夹配置为IIS中的应用程序? – 2009-10-04 10:02:31

0

我最近不得不这样做,并且在wiki文件夹中创建了一个应用程序(正如前面的答案中所建议的),我还必须在Wiki应用程序的顶层放置一个虚拟“App_Themes - > Default”文件夹因为父应用程序的Web.config中存在<pages styleSheetTheme="default" theme="default">标记。小黑客,但这是我喜欢在Asp.Net中配置我的样式,我不想改变它。

9

您需要停止在根Web.config文件中的配置继承,以便维基web.config中不读取从根web.config什么。

+1

上述链接的实时网站已死亡。缓存副本可以在[这里]找到(http://web.archive.org/web/20131024031827/http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for-儿童应用功能于子文件夹,在-ASP-net.aspx) – Fuchida 2014-08-02 21:24:26

+0

缓存副本已经被拉由于存档。org的robots.txt策略。 – 2016-05-09 00:16:24

+0

请参阅https://stackoverflow.com/questions/782252/avoid-web-config-inheritance-in-child-web-application-using-inheritinchildapplic – VDWWD 2017-06-27 07:20:33

4

正如其他人指出。基本上你需要把它放在你的子应用程序Web.config中,当然你也需要配置域(子域等),IIS设置。

<configuration>  
    <location path="." inheritInChildApplications="false"> 

    //your code here 

    <system.web> 
     //your code here 
    </system.web> 

    //your code here 

    </location>  
</configuration> 
+0

如果您的web.config中有<的属性,那些应该在''标签之外。 – 2015-10-12 11:55:16