1.以管理员身份运行
获得当前登录的Windows用户标示
//System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
//System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
判断当前登录用户是否为管理员
//if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
//{
// //如果是管理员,则直接运行
// Application.EnableVisualStyles();
// Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form1());
//}
//else
//{
// //创建启动对象
// ProcessStartInfo startInfo = new ProcessStartInfo();
// //设置运行文件
// startInfo.FileName = Application.ExecutablePath;
// //设置启动动作,确保以管理员身份运行
// startInfo.Verb = "runas";
// //如果不是管理员,则启动UAC
// Process.Start(startInfo);
// //退出
// Application.Exit();
//}
2.添加net包selfHost的5.2.7.0
webHost的5.2.7.0
3.开启服务
var config = new HttpSelfHostConfiguration("http://localhost:8834"); //配置主机
config.MapHttpAttributeRoutes(); //配置路由
config.Routes.MapHttpRoute("API Default", "api/{controller}/{action}/{id}", new { id = RouteParameter.Optional });
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
HttpSelfHostServer server = new HttpSelfHostServer(config);
server.OpenAsync().Wait(); //开启来自客户端的请求
4.创建Controller
public class TestController : ApiController
{
[HttpGet]
public List<object> getList()
{
List<object> list = new List<object>();
list.Add(new { Id = 1, Name = "张三", Age = 20 });
list.Add(new { Id = 2, Name = "李四", Age = 21 });
list.Add(new { Id = 3, Name = "王五", Age = 22 });
list.Add(new { Id = 4, Name = "赵六", Age = 23 });
return list;
}
[HttpGet]
public object get(int id)
{
return new { Id = 1, Name = "张三", Age = 20 };
}
[HttpGet]
public string helloworld()
{
return "HelloWorld";
}
}