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";
}
}