【问题标题】:HTTP 404 error while invoking a local webservice in .NET MVC4在 .NET MVC4 中调用本地 Web 服务时出现 HTTP 404 错误
【发布时间】:2013-06-12 03:48:37
【问题描述】:

我正在尝试在 .NET mvc4 中学习 Web 服务。我尝试创建一个新的 Internet 应用程序并将 Web 服务 (asmx) 添加到项目中。

默认情况下,VS 会添加一个“HelloWorld”Web 服务。当我尝试在浏览器中运行它时,我确实得到了操作列表、服务描述(WSDL)和HellowWorld 操作的详细信息。但是,当我尝试调用 web 服务时,会出现以下错误:

“/”应用程序中的服务器错误。

找不到资源。

描述:HTTP 404。您正在寻找的资源(或其之一 依赖项)可能已被删除,名称已更改,或者是 暂时不可用。请查看以下 URL 并制作 确保拼写正确。

我猜我可能遗漏了一些基本步骤/设置。可以请一些身体帮助。谢谢。

【问题讨论】:

  • 我的第一个问题是您为什么选择 ASMX Web 服务而不是 WCF?
  • 我没有选择 ASMX。我只是在尝试创建一些书中给出的 Web 服务。我最终会使用 WebAPI。但是,我想创建一个既有 WebAPI 又有 ASMX 的示例,用于演示目的。

标签: web-services asp.net-mvc-4 asmx


【解决方案1】:

我从我的一位同事那里得到了答案 :)。

当我们调用服务时,MVC 会尝试解析 RegisterRoutes 中指定的路径。 因此,它试图找到一个具有该名称的控制器和一个名称与该控制器内的操作名称相同的方法。解决方法,忽略扩展名为 .asmx 的路径。您可以通过在 RouteConfig.cs 中添加以下行来做到这一点:

routes.IgnoreRoute("{*x}", new { x = @".*\.asmx(/.*)?" }); 

它奏效了。谢谢。

【讨论】:

  • 同样有用的答案stackoverflow.com/questions/4675367/…for
  • 我知道这是旧的,但谢谢你的帖子。我已经为此苦苦挣扎了 7-8 个小时。我的本地网络服务停止工作,直到我找到这篇文章,我才知道出了什么问题。对于其他有同样问题的人,“routes.ignoreRoutes..”将被添加到 RouteConfig.cs 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多