我在IIS中运行了 ASP.NET WebApi 应用程序。在非请求后台工作者主题中,我需要找出应用程序的基础Uri (例如https://machineName:port/applicationName/)。
通常的建议不起作用,因为在Application_Start()方法中创建的工作线程的情况下,Request对象为null。
更新:我将端口添加到特定于环境的web.config文件中,该文件在部署时合并(由@Kenneth建议)。
答案 0 :(得分:3)
您可以使用HostingEnvironment.ApplicationVirtualPath
属性。
它位于System.Web程序集的System.Web.Hosting
- 命名空间
这是MSDN参考:https://msdn.microsoft.com/en-us/library/system.web.hosting.hostingenvironment(v=vs.110).aspx
答案 1 :(得分:0)
我会建议和@Kenneth一样的解决方案。
否则,我猜你可以抓住App Start上的值并将其捕获到内存中供以后使用。