将WebApi发布到子文件夹

smo*_*re4 10 c# asp.net twitter visual-studio asp.net-web-api

我有一个使用WebApi的开箱即用的Visual Studio 2013 SPA.我将Twitter身份验证添加到Startup.Auth.cs,当我发布到IIS网站的根目录或在VS中使用localhost进行调试时,所有这些都可以正常工作.

我无法弄清楚如何将项目发布到这样的子文件夹:

在此输入图像描述

换句话说,http:// localhost/api

网站本身有效.来自Twitter的ReturnUrl始终重定向到http:// localhost /# 它包含正确的access_token但是采用以下格式:

http:// localhost /#access_token = fzgSLjF4W0QAHlhsNFZI ...

如果我在#access_token之前手动输入"api /",它会打开默认的索引页面并通过Twitter进行身份验证.我已经调整了Twitter方面的每个设置,javascript和.cs.我只是找不到发布到根网站以外的解决方案.我想发布到子文件夹应用程序.

建议?

Jos*_*osh 5

看到这个答案

使用Visual Studio“ Web Deploy”发布方法。

将“网站名称”设置为 localhost/api而不是localhost


smo*_*re4 3

浏览完每个文件夹后,我注意到有一个我没有检查的文件夹 - Providers。其中有一个名为 ApplicationOAuthProviders.cs 的类。一旦我更改了该文件中的值,社交登录就开始正确重定向。

有很多更改需要更改才能发布到子文件夹;他们是:

  • ApplicationOAuthProvider : context.Request.Uri, "/YourSubfolder/"
  • app.datamodel.js : self.userInfoUrl = "YourSubfolder/me"; (删除第一个斜线)
  • app.viewmodel.js:window.location =“/YourSubfolder/Account/Authorize?client_id=web&response_type=token&state=”+encodeURIComponent(window.location.hash);
  • WebApiConfig.cs:routeTemplate:“YourSubfolder / {controller} / {id}”