IIS 7 – 单页应用程序URL别名时的问题

我们的客户端在IIS下有以下设置

Sites - applications (binds to http://applications.domain.com) - app1 - app2 

app1app2都是.NET单页面应用程序(.NET MVC和.NET Web API的组合)。

这些应用程序位于C:\inetpub\applications\文件夹下,并已转换为应用程序。 因此, app1可在以下URL http://applications.domain.com/app1下获得, app2可在http://applications.domain.com/app2

我遇到的问题是,所有的AJAX路由都是相对于根(/)路由,因此不存在,例如http://applications.domain.com/api/products不会抛出一个404,因为路由其实是http://applications.domain.com/app1/api/products

有没有一个IIS设置,可以让我做这个工作短重写所有我的AJAX调用与前缀? 或者有什么不同的方式,我可以在IIS下configuration这种设置? 谢谢。

你想要做的就是把这两个应用程序放在他们自己的虚拟目录中 – 那么大多数的asp.net调用将会得到正确的文档根目录,而且事情将会与世界更加紧密。

要做到这一点:

  1. 做一个假的文档根和假网站 – iis7需要某个地方存放一个web.config文件,这应该是唯一的这个应用程序。 我会使用类似于c:\ inetpub \ applications \ deadroot; 添加一个IIS站点看这个文件夹。
  2. 为app1添加一个虚拟应用程序,指向该站点内的app1文件夹
  3. 添加app2的虚拟应用程序,指向该站点内的app2文件夹

每个人都会站在它的头上。