我使用asmx
在asp.net Web应用程序中提供了一些Web服务。
因为它需要在这里提供更多的Web服务,我将使用Web API而不是传统的asmx。
问题是,我是否可以在同一个项目中将这些类型的Web服务部署到同一个Web主机上?
这是解决方案资源管理器:
正如您所看到的,CNIS.asmx
和Webservise_TCIKH.asmx
是很久以前提供的,现在我需要使用Web API添加更多Web服务,但旧的Web服务应保持正常运行。< / p>
我在名为CNISAPI的文件夹中添加了一个名为AirKindController.cs
的新API控制器。这是实施:
public class AirKindController : ApiController
{
CNISDataContext db;
private AirKindController()
{
db = new CNISDataContext();
}
// GET api/<controller>
public IEnumerable<AirKind> Get()
{
return db.AirKinds;
}
但是,当我请求http://localhost:3031/CNISAPI/api/AirKind
或http://localhost:3031/api/AirKind
时,错误为404!我打电话给对吗?或者不可能将这两种类型的Web服务放在同一个地方?
提前致谢!
编辑:(解决方案)
通过@moarboilerplate指导,我在项目中添加了Global.asax
,并在Application_Start
方法中添加路由配置,如下所示:
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
WebApiConfig.Register
在这里:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
现在,我可以通过请求http://localhost:3031/api/AirKind
来获取xml格式的输出。
问题已解决!!!
答案 0 :(得分:1)
由于问题本身已解决了这个问题,我决定在答案部分添加答案:
通过@moarboilerplate指导,我已将Global.asax添加到我的项目中,并在Application_Start
方法中添加路由配置,如下所示:
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
WebApiConfig.Register
在这里:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
现在,我可以通过请求http://localhost:3031/api/AirKind
来获取xml格式的输出。
特别感谢@moarboilerplate。