IIS7 MVC 5(单页面应用程序)中的URL路由

时间:2015-11-20 11:35:05

标签: asp.net-mvc asp.net-mvc-5 routes

将我的MVC5 Web应用程序发布到我的IIS服务器(个人用户帐户)后,似乎访问的URL不正确。

在调试期间,它将是例如http://localhost:1234/api/Account/UserInfo?=XXXXX 调试工作得很好。在我通过我的IIS7服务器发布它之后,唯一的问题就出现了。

发布并使用Google Chrome控制台后,该网页似乎正在mydomainname.com/api/Account/UserInfo?=XXXX而不是mydomainname.com/WEBAPPLICATIONNAME/api/Account/UserInfo?=XXXX请求资源。

我最好的猜测是修改/Scripts/app/app.datamodel.js中的网址,但这只会导致更多解析问题。

我已经四处搜索,似乎无法找到任何相关问题。我希望有人能够伸出援助之手。

1 个答案:

答案 0 :(得分:0)

看起来你正在使用像" / api / Account / UserInfo"这样的相对路径。相反,我建议您使用@Url.Content("/api/Account/UserInfo")。这将解决您的问题

<强>解释

在本地系统中,当我们在WebDev服务器中运行应用程序时,它永远不会有子文件夹(如WEBAPPLICATIONNAME),因此您的相对路径正常工作。但是当您在IIS中的另一个新网站/虚拟文件夹(例如&#39; WEBAPPLICATIONNAME&#39;)中的默认网站下托管您的应用程序时,那么&#34; / api / Account / UserInfo&#34;回到默认网站,因为&#39; /&#39;在开始。 @Url.Content@Url.Action确保添加虚拟目录名称,从而将路径更改为&#34; / WEBAPPLICATIONNAME / api / Account / UserInfo&#34;在IIS中。