【发布时间】:2017-12-09 13:17:11
【问题描述】:
这个问题应该在某个地方得到回答,但我会试着解释一下这个场景:
我有一个应用程序 ASP.NET MVC,当我在本地调试它或在根 IIS 中部署时它工作正常,但如果我将它作为应用程序部署在 IIS 上(使用别名),所有引用的文件都将指向错误的位置。
我正在使用(用于测试)我的本地计算机作为 Web 服务器。默认情况下,应用程序重定向到应用程序/登录地址。
例子:
1) 如果我将应用程序部署在 C:\inetpub\wwwroot 中,并通过 URL http://localhost 访问它,则该网站运行正常,没有文件中断或其他情况。网站将用户重定向到页面http://localhost/Login
2) 如果我在 C:\inetpub\wwwroot\app1 中部署应用程序,并通过 URL http://localhost/app1 访问它,所有引用的链接和重定向都链接到 http://localhost 而不是 http://localhost/app1,并且当默认发生重定向时,它会将我重定向到http://localhost/Login,而不是http://localhost/app1/Login。
我尝试使用 Web.config 上的资源“位置”,将路径设置为“.”、“~”(使应用程序崩溃)和“/”,将 inheritInChildApplications 设置为 true/false,将其设置为System.web 节点上方的一个节点,但这些尝试都对我不起作用。
在 RouteConfig 上设置重定向到登录是没有用的,因为它只会解决登录重定向问题,而不是整个问题。考虑到 BundleConfig 以相同的方式读取。
我将 system.web 节点留在了 Web.config 节点中,如下所示:
<location path="." inheritInChildApplications="false">
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Login" timeout="60" />
</authentication>
<roleManager enabled="true">
</roleManager>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
【问题讨论】:
-
部署到
app1文件夹时,是否还创建了一个名为app1的IIS应用程序? -
@JohnWu 是的。我正在创建应用程序并使用相同的名称发布它。
-
您是否尝试从 IIS 浏览应用程序?当你从 IIS 启动应用程序时,看看它的部署路径是什么
-
@AmitMishra 这是我的第一次尝试。当我点击“浏览”时,它会将我正确重定向到 localhost/app1,但是当我将我重定向到登录页面时,应用程序会根据问题中描述的情况重定向我。
-
你试过这样做吗?
标签: c# asp.net asp.net-mvc redirect iis