asp.net – 在集成模式下替换HttpContext.Current.Request.ServerVariable
发布时间:2020-05-23 20:38:59 所属栏目:asp.Net 来源:互联网
导读:在集成模式下使用HttpContext.Current.Request.ServerVariables [“SERVER_NAME”]会在IIS7中出现错误,如下所示: http://mvolo.com/blogs/serverside/archive/2007/11/10/Integrated-mode-Request-is-not-available-in-this-context-in-Ap
|
在集成模式下使用HttpContext.Current.Request.ServerVariables [“SERVER_NAME”]会在IIS7中出现错误,如下所示: http://mvolo.com/blogs/serverside/archive/2007/11/10/Integrated-mode-Request-is-not-available-in-this-context-in-Application_5F00_Start.aspx 我可以在global.asax代码中使用HttpContext.Current.Request.ServerVariables [“SERVER_NAME”]吗? 这与使用类似 String strPath = HttpContext.Current.Server.MapPath(HttpRuntime.AppDomainAppVirtualPath); 代替 //String strPath = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ServerVariables["PATH_INFO"]); 解决方法由于在应用程序启动期间管道中没有请求上下文,我无法想象有什么方法可以猜测下一个实际请求可能出现在哪个服务器/端口上.这是我在经典模式下使用的内容.开销可以忽略不计. /// <summary>
/// Class is called only on the first request
/// </summary>
private class AppStart
{
static bool _init = false;
private static Object _lock = new Object();
/// <summary>
/// Does nothing after first request
/// </summary>
/// <param name="context"></param>
public static void Start(HttpContext context)
{
if (_init)
{
return;
}
//create class level lock in case multiple sessions start simultaneously
lock (_lock)
{
if (!_init)
{
string server = context.Request.ServerVariables["SERVER_NAME"];
string port = context.Request.ServerVariables["SERVER_PORT"];
HttpRuntime.Cache.Insert("basePath","http://" + server + ":" + port + "/");
}
}
}
}
protected void Session_Start(object sender,EventArgs e)
{
//initializes Cache on first request
AppStart.Start(HttpContext.Current);
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 嵌套对象的远程ViewModel验证无效
- asp.net-mvc-3 – 如何在本地测试时禁用elmah发送电子邮件?
- asp.net – 我们可以在视图状态中放置哪些类型的对象?
- ASP.NET MVC和ORM选择
- asp-classic – 如何在经典的asp中读取文本文件
- asp.net-mvc – 什么是强类型的视图在ASP.NET MVC
- asp.net-mvc – 在ASP .NET MVC 3中使用XSLT
- asp.net – SignalR/signalr/hubs 404未找到
- entity-framework – 为什么ASP.NET SPA模板会为所有请求实
- asp.net-mvc – ViewBag.Title值覆盖ASP.NET MVC编辑器模板
推荐文章
站长推荐
- asp.net – TableHeaderRow类的重点是什么
- asp.net-mvc – 如何获取视图html并返回客户端
- asp.net – 我们可以用IIS运行Selenium WebDrive
- 如何为asp.net身份创建安全邮戳值(IUserSecurity
- ASP.NET MVC – 返回JavaScriptResult不起作用
- asp.net-mvc – OwinStartup没有开始…为什么?
- asp.net-mvc – 修改模型时更新视图
- asp.net – 当用户关闭浏览器等待长时间运行的We
- .net – ELMAH对企业库异常处理块
- asp.net-mvc – 如何在MVC3中为多行文本框创建多
热点阅读
