问题情景如标题,具体错误如下图:
出现以上情况,是程序将 .asmx 文件按控制器方式解析了,在 RouteConfig.cs 文件的 RegisterRoutes 方法中忽略 .asmx 文件,"{resource}.asmx/{*pathInfo}" 为相对于根目录的路径,根据自己项目实际配置,如下:
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("{resource}.asmx/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } }
再一次尝试调试运行,成功。
注意:
.asmx 文件所在的目录要完整(从 web 根目录开始)。