2012-01-10 42 views
0

我们有一个用传统ASP编写的网站,然后我开始使用Web窗体进行扩展。这些扩展名存在于主文件夹的子文件夹中。现在我们已经决定我们更愿意使用MVC3。另外,由于我们希望随着时间的推移将我们的所有站点转换为MVC3,因此我们将在应用程序根目录中托管MVC代码。我发现了一些其他问题,人们对我有类似的问题,但没有解决方案。问题很简单,我的Web表单应用程序似乎无法停止从根文件夹继承web.config设置,因此,它不会运行,它可能会抱怨丢失的dll或抱怨运行错误的.NET版本,或者抱怨我需要删除一些设置(我试过并且永远无法正常工作)。子文件夹中的应用程序还托管着一个由我们的应用程序调用的Web服务,并且它还运行HTTP处理程序来保护我们的映像内容,所以它里面有一些东西。我是否需要在子文件夹中运行我的MVC网站?有什么方法可以在Web窗体应用程序上方的文件夹中使用MVC?我更愿意做一些事情,让他们共享会话数据,但在寻找可能在这个阶段是不可能的......在同一IIS7实例上托管MVC和webforms站点 - web.config继承

所以要明确的文件夹结构为:

<root> 
    contains asp site and MVC site. 
    <subfolder> 
     contains webforms application 
    </subfolder> 
</root> 

和我的问题让子文件夹运行,最好在与MVC应用程序相同的会话中运行。

回答

0

没有理由不能在MVC网站上运行常规的.aspx文件。你是正确的,但web.config设置是从父(链)继承,但你只需在你的目录中添加一个新的web.config和相关的设置。

你将不得不做的就是使用路由,因为默认情况下MVC会将所有请求路由到你的控制器类。但是,如果你围绕它的谷歌相当简单的路由添加一个例外。

如果您发布了一些具体的错误,我们可能会进一步帮助。

哦,你的意思是经典的ASP?即不是传统的ASP.NET?因为您可以在ASP.NET之间共享会话数据。

+0

是的,我们使用数据库来获取ASP.NET和ASP之间的数据。它确保会话在Web表单和MVC之间保持一致,这是我的担忧。路由不是我的问题,我可以在根中加载一个aspx,但我无法从子文件夹中的应用加载任何东西。 – cgraus 2012-01-10 04:10:37

+0

路由几乎肯定会成为问题的一部分,因为它将子文件夹路由到控制器 - 必须停止。这就是说,如果你能提供详细的确切的错误,我们可以帮助更多。 – 2012-01-10 04:14:57

+0

那么,我需要花一些时间来做web.config更改,以获得我所得到的不同错误的整个色域,但他们归结为'不允许重复web.config部分'和'无法加载dll因为你的网站运行在.NET的旧版本上“。我的解决方案是能够运行这个应用程序,所以它不会继承根文件夹的设置。我不认为任何代码改变,不会这样做,将解决我的任何特定的错误信息。 – cgraus 2012-01-10 04:19:15