c# - 来自非请求工作线程的应用程序的 ASP.NET WebApi 基础 Uri

标签 c# asp.net asp.net-mvc asp.net-web-api asp.net-web-api2

我有一个在 IIS 中运行的 ASP.NET WebApi 应用程序。我需要从一个非请求后台 worker 线程中找出应用程序的基本 URI(例如,https://machineName:port/applicationName/)。

通常的建议不起作用,因为在 Application_Start() 方法中创建的工作线程的情况下 Request 对象为 null。

更新:我将端口添加到环境特定的 web.config 文件中,该文件在部署时合并(如@Kenneth 所建议)。

最佳答案

您可以使用 HostingEnvironment.ApplicationVirtualPath 属性。

它位于 System.Web 程序集的 System.Web.Hosting 命名空间中

这是 MSDN 引用:https://msdn.microsoft.com/en-us/library/system.web.hosting.hostingenvironment(v=vs.110).aspx

关于c# - 来自非请求工作线程的应用程序的 ASP.NET WebApi 基础 Uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777738/

相关文章:

javascript - 为什么我返回的 JSON 响应被方括号 [] 包围?

c# - 如何将变量连接到某些 <asp : . ./> 属性中?

c# - 保存到xml文档

c# - 无法通过 TCP/Sockets .net 退出具有多个缓冲区传输的循环

asp.net - SQL Server 和 ADO.NET 中事务的区别?

c# - 对对象的 MVC4 linq 查询未作为正确的对象出现

c# - getter 和 setter 中的代码是否失宠了?

c# - 我什么时候应该使用 AutoMapper,什么时候不应该

c# - LINQ OrderBy 不同字段类型取决于 IF 语句

asp.net - 将 machineKey 添加到网络场站点上的 web.config