【问题标题】:Publish WebApi to Subfolder将 Web Api 发布到子文件夹
【发布时间】:2015-11-20 05:33:38
【问题描述】:

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

我不知道如何将项目发布到这样的子文件夹:

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

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

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

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

建议?

【问题讨论】:

  • 您将它发布到子文件夹的原因是什么?我建议您查看 IIS 中的虚拟主机。
  • twitter 中的回调 url - 是否包含 /api?
  • 是的。我也试过127.0.0.1/api

标签: c# asp.net visual-studio twitter asp.net-web-api


【解决方案1】:

this answer

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

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

【讨论】:

  • 我要测试一下。谢谢你的帖子。
【解决方案2】:

在浏览完每个文件夹后,我注意到一个我没有检查的文件夹 - 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}"

【讨论】:

    【解决方案3】:

    您是否尝试在 IIS 网站中添加虚拟目录?
    我有我的 API 作为单独的项目,我可以通过使用 www.your-web-site/API-subfolder

    来引用它 为此,请转到您网站上的 IIS -> 上下文菜单。然后:

    并为您的 API 项目添加别名(子文件夹名称)和物理路径。
    它应该工作

    【讨论】:

    • 我试过了,但收到一个错误,说它需要是一个 Web 应用程序。
    • 尝试创建 API Web 应用程序,在其中包含您的 WebApi 项目,然后将虚拟目录引用到您的 API Web 应用程序。
    • @Lokki..我正在尝试将我的 web api 托管为虚拟目录。我可以看到目录列表,但是当我尝试点击控制器时,我无法做到这一点。知道我做错了什么吗?
    【解决方案4】:

    我遇到了这个问题,这就是我要解决这个问题的方法:

    内容视图上,只需点击子文件夹并选择“转换为应用程序”。就是这样。

    然后只需点击新创建的应用程序并点击浏览,它将显示 Web API 项目的默认页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-10
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      相关资源
      最近更新 更多