我用来从代码本身获取网址。但是,我尝试生成网址的代码位于外部C#类中。
string url = HttpContext.Current.Request.Url.Scheme + System.Uri.SchemeDelimiter + HttpContext.Current.Request.Url.Host +
(HttpContext.Current.Request.Url.IsDefaultPort ? "" : ":" + HttpContext.Current.Request.Url.Port);
The error above line giving is : Object reference not set to an Instance of an Object
该类位于Solution的Helpers文件夹下。据我所知,它已经对类的位置做了些什么,好像上面的代码已经存在于任何Controller中,然后就会产生web url。
已更新
在Application_Start方法中的 Global.asax 文件中,我调用上述类。
答案 0 :(得分:2)
Request
对象不适用于Application_Start
事件
ASP.NET Application Life Cycle
表示此事件不代表Http
个事件。
Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法。 ASP.NET在应用程序域的生命周期内调用它们一次,而不是为每个HttpApplication实例调用它们。
您可以通过此链接HttpApplication Class on MSDN
查看HttpApplication
代表的内容
答案 1 :(得分:0)
Application_Start
事件在没有附加请求的情况下引发。请求对象尚不可用。 (例如,在预加载应用程序时可以引发它。在这种情况下,根本没有请求。)
您可以使用Begin_Request
事件并检查它是否是该会话中的第一次。