获取没有请求对象的asp.net服务器和应用程序url

获取没有请求对象的asp.net服务器和应用程序url,asp.net,Asp.net,有没有一种方法可以在不访问请求对象的情况下获取服务器url(例如:) 我需要应用程序启动时的url,以及在某些类中,请求对象和所有好东西都不可用的url 注意:我知道获取应用程序文件夹可以使用 VirtualPathUtility.ToAbsolute("~/"); HttpContext.Current.Request是一个静态属性,它始终返回当前为会话执行的请求对象 我想你们只需要一个定制的解决方案,就可以知道在应用程序启动后第一个请求何时发出,然后你们就可以发送任何你们想要的电子邮件。。

有没有一种方法可以在不访问请求对象的情况下获取服务器url(例如:)

我需要应用程序启动时的url,以及在某些类中,请求对象和所有好东西都不可用的url

注意:我知道获取应用程序文件夹可以使用

VirtualPathUtility.ToAbsolute("~/");

HttpContext.Current.Request是一个静态属性,它始终返回当前为会话执行的请求对象


我想你们只需要一个定制的解决方案,就可以知道在应用程序启动后第一个请求何时发出,然后你们就可以发送任何你们想要的电子邮件。。此解决方案的问题与此类似。在BeginRequest事件中执行首次初始化检查。

可能有许多不同的地址都指向同一个ASP.NET网站,例如使用IP地址或名称。可能有多个DNS名称指向同一ASP.NET应用程序。因此,Global的父类HttpApplication不知道访问者将使用哪个URL。连IIS都不知道。因此,您必须等待第一个请求,然后在请求中检查访问者访问您的站点所使用的URL。大概是这样的:

string baseUrl = Context.Request.Url.GetLeftPart(UriPartial.Authority);

在Global.Application\u启动期间,必须使用上下文来访问请求,因为Global.Request尚未初始化。

是,但在Application\u启动时不可用,但在Application Start中,没有启动会话表示没有请求。那么,当没有人请求一个页面时,为什么需要url呢。。您应该使用Session_start而不是application_start。我在这里需要它,因为有些操作应该在应用程序启动时只执行一次(包括日志)。另外,我知道一个解决方案是将字符串保存在web.config中,但我认为应该有更好的方法来实现这一点。但是为什么在启动日志数据时需要请求url呢?这两者之间没有这样的关系,我必须在应用程序启动时发送一些通知电子邮件。它们需要包含路径。您可以使用
HttpRuntime.AppDomainAppVirtualPath
获取虚拟路径。