将Web API转换为使用自托管
我想将现有的ASP.NET Web API项目(当前在IIS中托管)转换为可以使用SelfHost框架的项目。我在实际的细节上有些模糊,但明白我可以在控制台窗口中运行自主服务器,然后在其上运行服务。我遇到的问题是我的项目是一个MVC项目,而不是控制台。我对控制台/ Windows应用程序的熟悉程度有限,因为我通常与在IIS中托管的项目一起工作。将Web API转换为使用自托管
我有点困惑的是我是否需要将Visual Studio中现有的Web API项目转换为新的控制台应用程序,或者是否有方法在解决方案中创建另一个控制台应用程序Web API服务的Web服务器,或者更确切地说,如果有一种方法可以添加一个带有Main()入口点的控制台元素到现有的MVC项目(重写Global.asax入口点)。
搜索没有产生很多信息可以帮助我填补这方面的知识空白。希望有人能指引我正确的方向。即使在很高的水平。
trnelson
下面是一些例子http://stackoverflow.com/questions/12899360/getting-a-post-endpoint-to -work-in-self-hosted-webservicehost -c-sharp-webservi,http://stackoverflow.com/questions/13165533/deserialize -json-object-sent-from-android-app-to-wcf-webservice from my previous answers。 –
@ L.B谢谢你的评论,但除非我错过了一些东西,我不太明白这是如何回答这个问题的。 –
trnelson,这两个答案都显示*自包含* RestFul服务的客户端和服务器代码。如果你没有找到有用的,请忽略我的评论。 –
回答
我最近必须使用OWIN(在Visual Studio 2013上)将Web API项目转换为自托管服务。我这样做如下:
(1)在项目的根目录手动添加Program.cs和Startup.cs文件。这两个文件都包含代码,如下所述:http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api。
(2)参加了Web API项目的属性。在“应用程序”部分,我将“输出类型”称为“控制台应用程序”,并将“程序”类设置为“启动对象”。
虽然不是必需的,我稍微修改了“使用”块Program.Main()来查找如下:
// Start OWIN host
using (WebApp.Start<Startup>(url: baseAddress))
{
// Create HttpCient and make a request to api/values
HttpClient client = new HttpClient();
var response = client.GetAsync(baseAddress + "api/values").Result;
if (response != null)
{
Console.WriteLine("Information from service: {0}", response.Content.ReadAsStringAsync().Result);
}
else
{
Console.WriteLine("ERROR: Impossible to connect to service");
}
Console.WriteLine();
Console.WriteLine("Press ENTER to stop the server and close app...");
Console.ReadLine();
}
最后,而不是内启动调用config.Routes.MapHttpRoute()多次.Configuration(),你可以参考你已经写了Web API的路线:
// Configure Web API for self-host.
var config = new HttpConfiguration();
WebApiConfig.Register(config);
app.UseWebApi(config);
将Web API转换为使用自托管
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击