기존 ASP.NET 응용 프로그램에 Web API 기능을 추가하려고합니다. 이것은 단순해야하지만 몇 시간 동안 붙어 있습니다. 나는 많은 것들을 시도했지만 지금까지는 운이 없다.api 폴더에서 레거시 asmx 서비스로 Web Api 2 라우트 구성
"/ api"폴더에 여러 개의 asmx 서비스가 있습니다. 이것은 어떻게 든 웹 API 라우팅을 방해합니다. 이상적으로는 기존 서비스가 외부 참조이므로 현재 서비스를 현재 위치에 보관하고 싶습니다.
샘플 서비스 : /Api/ApiServ.asmx - 나는 방법 목록
나는 서비스, 예를 들어 중 하나에 모든 메소드를 호출 할 때 문제가 함께 초기 화면을 호출 할 수 있어요 /Api/ApiServ.asmx/ServMethod -이를 호출 할 수 없습니다 나는이 응답 받고 있어요 : "요청 URI 'http://localhost:49415/api/apiserv.asmx/ServMethod'없음 HTTP 리소스를 찾을 수 없었다 일치"여기
내가 무엇을 가지고 : 글로벌 .asax :
public class WebApiApplication : HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
//RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
샘플 서비스 :
namespace WebApiTest.Api
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
[ScriptService]
public class ApiServ : WebService
{
[WebMethod]
public string ServMethod()
{
return "Test";
}
}
}
웹 API 광고 구성 :
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.IgnoreRoute("asmx", "api/{resource}.asmx/{*pathInfo}");
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
이상하게도 경로 debbuger를 사용할 때 실제로 asmx 무시 경로와 일치하지만 서비스 메소드는 적중되지 않습니다. 어떤 도움을 주셔서 감사합니다!