在.NET MVC4中调用本地Web服务时出现HTTP 404错误

时间:2013-06-12 03:48:37

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

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

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

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

     

无法找到资源。

     

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

我猜可能会错过一些基本步骤/设置。请一些人帮忙。感谢。

1 个答案:

答案 0 :(得分:32)

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

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

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

它有效。感谢。