我们有一个经典的asp站点(不是asp.net),我们一直在逐步迁移到MVC。目前,MVC项目作为IIS中经典asp下的应用程序运行,具有自己的应用程序池。这种安排是有效的。
我被告知要从MVC项目中运行其余的经典asp页面,使MVC项目成为IIS中的主要项目。
我一直在寻找可行的解决方案,但还没有找到。 This question与我的非常相似,但没有答案。
我可以在MVC项目中创建一个文件夹(classicasp),将剩余的活动经典asp页面移动到此文件夹,然后从这里运行它们吗?网址就像
的http:/www.somewebsite.com/classicasp/somepage.asp
有可能吗?如果是,我将如何处理MVC路由以指向经典的asp页面?
或者我是否应该颠倒这种安排并将经典的asp网站作为IIS中的MVC下的应用程序运行
如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
您可以将经典的asp页面放在mvc站点(或根文件夹中的子文件夹)的根文件夹中,所以是的,如果文件的位置沿着行,则url http://www.somewebsite.com/classicasp/somepage.asp
应该可以工作C:\path-to\root\classicasp\somepage.asp
就路由而言,不要使用MVC,使用IIS重写模块
你可能最好使用模块生成规则而不是直接将它们写入web.config,但这是web.config中的示例规则。您可以使用网址mysite.com/article.asp?id=10
mysite.com/article/10
找到文章
<system.webServer>
<rewrite>
<rules>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^article/([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="article.asp?id={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>