在另一个Web窗体站点的子目录中部署Web窗体站点

时间:2014-03-19 14:30:13

标签: asp.net webforms

我正在尝试在旧网站的子目录中部署MS ASP.NET Web窗体网站。我们假设根网址为tld.com,子目录为~/dir。 (我知道,不是很原始。)新网站是旧版的升级版;旧网站正常工作,必须继续正常工作。旧项目的命名空间为TLD,新项目的命名空间为TLD_V2

我已经发现tld.com/dir/web.config不能是完整的文件,因为它包含与tld.com/web.config冲突的条目。目前我已删除~/dir/web.config

我接下来发现我的目标网页~/dir/Default.aspx包含指向根目录的指令MasterPage="~/main.Master",我必须更改它以反映本地目录:MasterPage="./main.Master"。< / p>

现在,Web服务器在main.Master中报告解析器错误:Could not load type 'TLD_V2.Main'.〜/ dir / main.Master中的指令行是:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="main.Master.cs" Inherits="TLD_V2.Main" %>

我已经验证main.Master.designer.cs包含匹配的命名空间。我还尝试将CodeBehind更改为./main.Master.cs;这并没有改变任何事情。

我不知道接下来要做什么。

(接下来,我们计划使用MS MVC重写此网站。但是,这一刻不是一个选项。)

2 个答案:

答案 0 :(得分:0)

我们通过制作子域来解决这个问题,例如: TLD_V2.TLD

答案 1 :(得分:0)

创建子域可以工作 - 这使事情完全分离(并与DNS一起使用)。

回到创建&#34;目录的最初目标&#34; ...道歉,没有时间真正做一个&#34;脚手架&#34;早。这就是说这些是基于Visual Studio for Web Forms中的默认脚手架(2个独立的Visual Studio WebForms Web应用程序):

  • 在IIS管理器(或某些主机提供的用户界面 - ,如果可能/可用)中,在现有的&#34;父级&#34;中创建新应用程序:< / LI>

add new IIS application

  • 您最终会得到一个看起来像这样的IIS结构。请注意带有&#34; globe&#34;的图标。 - 这代表应用程序(使用它自己的web.config等):

IIS folder structure

  • 以下屏幕截图显示&#34;子目录导航&#34;应用程序之间(箭头指向各自的母版页内容):

    • 主要应用主页Main app home

    • 应用主页Sub app home

    • 主要应用内部导航(主应用主页 - >关于页面)Main app nav

    • 应用内部导航(子应用主页 - &gt;关于页面)SubApp nav

希望这会有所帮助......