【问题标题】:Cannot find Account/Authorize when MVC Web AppMVC Web App 时找不到帐户/授权
【发布时间】:2017-03-29 19:16:14
【问题描述】:

我有一个具有以下默认路由映射的 MVC 应用程序:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new {controller = "Startup", action = "Index", id = UrlParameter.Optional }
);

只要我将此站点部署到我的 IIS 服务器的根目录 (c:\inetpub\wwwroot) 并在 IIS 中创建一个新的网站,一切正常。

但是,如果我在 wwwroot 文件夹结构中创建一个目录,并在那里部署相同的文件,而不是创建一个网站,我会在 DefaultWebSite 下创建一个应用程序并将其指向文件所在的子文件夹 (c:\inetpub\ wwwroot\MyApplication);当我启动之前配置为网站的 WebApplication 时,我收到错误消息“您要查找的资源已被删除、名称已更改或暂时不可用。强>”

请求的网址:http://localhost:80/Account/Authorize?client_id=web&response_type=token&state=

物理路径:C:\inetpub\wwwroot\Account\Authorize

所以看来我的路由需要调整以反映应用程序的位置在 wwwroot 下的子目录中,而不是在它正在查找的 wwwroot 中。

应采取哪些措施来确保 MVC Web“应用程序”在父网站下正常运行?

==================================

更新观察

在考虑了已发布的评论后,我发现我的问题的更多细节可能值得一提。

  1. 我的应用程序默认重定向到我发布的请求 URL,我没有这样做。换句话说,如果我打开 IIS,在 DefaultWebSite 下右键单击我的应用程序并选择浏览;我收到的网址不正确。我不记得 ASP.NET 应用程序有这个问题,这向我暗示了“路由”问题

  2. 1234563右手边的角落。该页面的标题为 CORS 检测脚本。向我建议我的应用程序可能与默认网站位于不同的域中???不过需要澄清一下。
  3. 如果我再次在使我进入 CORS 检测脚本页面的 URL 之前加上应用程序名称,我的页面将按预期成功加载

================================================ =

同样,我相信我的应用程序中的某处(可能在路由配置中)需要进行一些调整,以补偿默认生成的错误 URL。

因为如果我将应用程序设置为所有内容都位于根目录而不是子目录的网站,那么一切正常。

肯定有人看过这个

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 iis


    【解决方案1】:

    当您在网站的子文件夹中创建应用程序时,您实际上只是更改了运行应用程序的进程范围 (w3p.exe)。您仍然需要将应用程序名称放在 url 中,如下所示:

    http://localhost:80/MyApplication/Account/Authorize?etc

    【讨论】:

    • 我的应用程序正在重定向到我在问题中发布的 URL,我没有这样做。但就您而言,如果我按照您的建议更改 URL,那么我将被重定向到 localhost/… 并在右上角收到一个空白内容页面,上面写着“开始执行”。该页面的标题为 CORS 检测脚本。我正在用新信息更新我的问题。谢谢
    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    相关资源
    最近更新 更多