14

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

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

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

无法找到该资源。

说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

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

4

1 回答 1

36

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

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

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

它奏效了。谢谢。

于 2013-06-12T05:30:27.093 回答