Asp.net MVC移动站点作为Webforms站点中的子域

Asp.net MVC移动站点作为Webforms站点中的子域,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一个现有的webforms项目,我想将我的新MVC4(移动聚焦)站点作为子域添加到其中。我还希望它能够从webforms站点访问会话变量。其思想是用户登录webforms站点,设置会话变量并重定向到移动站点(子域上) 最初,我将我的MVC站点添加到webforms站点,方法是在根级别更改web.config、global.asax(用于路由等)、控制器、视图和其他文件夹。这允许我访问会话变量。但是,由于webforms站点已经建立(很旧),因此更改web.config(最不重要的是重新测试)

我有一个现有的webforms项目,我想将我的新MVC4(移动聚焦)站点作为子域添加到其中。我还希望它能够从webforms站点访问会话变量。其思想是用户登录webforms站点,设置会话变量并重定向到移动站点(子域上)

最初,我将我的MVC站点添加到webforms站点,方法是在根级别更改web.config、global.asax(用于路由等)、控制器、视图和其他文件夹。这允许我访问会话变量。但是,由于webforms站点已经建立(很旧),因此更改web.config(最不重要的是重新测试)会产生影响。因此需要一个子域


将我的MVC站点的文件夹放到Webforms根目录中,这样它就有了自己的web.config,并将global.asax更改为路由到它(然后创建子域),这样容易吗?我还能访问子域中的会话变量吗?

您可以为MVC mobile创建一个新项目,在IIS中的类似m.mydomain.com的地方配置域绑定。 在两者的web.config中,定义相同的主域:

<httpCookies domain=".mydomain.com"/>

在这里开始difficoult任务,您需要注意在两个项目中共享相同的
machineKey
,并且可能需要根据所选会话场景添加一个HttpModule


看看这篇文章,它可以帮你提供一些指导。

为了分享这篇文章,我在Microsoft上实现了这篇文章。它是一个HttpModule。

还有一些额外的工作要做-我觉得本文假设您对IIS有一点了解。例如,我必须使用IIS管理器手动添加模块

通过使用IIS管理器手动添加模块,我成功地让它在IIS7中工作

(打开IIS管理器->选择应用程序->单击模块(右上)->通过单击“添加托管模块”添加SharedSessionModule

Name: SharedSessionModule
Type: <namespace>.SharedSessionModule
名称:SharedSessionModule
类型:。SharedSessionModule
(一个对话框说它找不到程序集,但在运行时没有问题)

然后重新启动IIS


然后我遇到的问题是,在提供图像、.pdf等非页面项目时“会话状态在此上下文中不可用”。在解决此问题之前,我被要求使用初始方法(并排)因此,我还没有找到如何改变这一点,但在so和其他网站上有很多建议。

与其说是一个专用的移动网站,不如说是一个拥抱?很抱歉,我不清楚。它是一个响应迅速的网站,适用于所有使用bootstrap 3的设备,但它将主要通过移动设备访问(我们正在替换ios应用程序)。