Questions tagged «httpcontext»

14
在单元测试中设置HttpContext.Current.Session
我有一个要尝试进行单元测试的Web服务。在服务中,它从HttpContext类似的方法中提取几个值,如下所示: m_password = (string)HttpContext.Current.Session["CustomerId"]; m_userID = (string)HttpContext.Current.Session["CustomerUrl"]; 在单元测试中,我正在使用简单的工作程序请求创建上下文,如下所示: SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter()); HttpContext context = new HttpContext(request); HttpContext.Current = context; 但是,每当我尝试设置 HttpContext.Current.Session HttpContext.Current.Session["CustomerId"] = "customer1"; HttpContext.Current.Session["CustomerUrl"] = "customer1Url"; 我得到的null引用异常HttpContext.Current.Session为null。 有什么办法可以在单元测试中初始化当前会话?

4
在测试Init方法中模拟HttpContext.Current
我正在尝试将单元测试添加到已构建的ASP.NET MVC应用程序中。在单元测试中,我使用以下代码: [TestMethod] public void IndexAction_Should_Return_View() { var controller = new MembershipController(); controller.SetFakeControllerContext("TestUser"); ... } 使用以下助手来模拟控制器上下文: public static class FakeControllerContext { public static HttpContextBase FakeHttpContext(string username) { var context = new Mock<HttpContextBase>(); context.SetupGet(ctx => ctx.Request.IsAuthenticated).Returns(!string.IsNullOrEmpty(username)); if (!string.IsNullOrEmpty(username)) context.SetupGet(ctx => ctx.User.Identity).Returns(FakeIdentity.CreateIdentity(username)); return context.Object; } public static void SetFakeControllerContext(this Controller controller, string …


5
如何使用Moq在ASP.NET MVC中模拟HttpContext?
[TestMethod] public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist() { var context = new Mock<HttpContextBase>(); var request = new Mock<HttpRequestBase>(); context .Setup(c => c.Request) .Returns(request.Object); HomeController controller = new HomeController(); controller.HttpContext = context; //Here I am getting an error (read only). ... } 我的基本控制器重写了初始化此请求上下文的初始化。我正在努力做到这一点,但我做的事情不正确。 protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); } 在哪里可以获取有关使用Moq模拟我的RequestContext和HttpContext的更多信息?我正在尝试模拟cookie和一般上下文。

6
如何在线程或计时器中访问HttpServerUtility.MapPath方法?
我System.Timers.Timer在Asp.Net应用程序中使用,并且我需要使用HttpServerUtility.MapPath似乎只能通过访问的方法HttpContext.Current.Server.MapPath。问题是,HttpContext.Current是null的,当Timer.Elapsed事件触发。 还有另一种方法来获取对HttpServerUtility对象的引用吗?我可以将其注入类的构造函数中。安全吗?我如何确定在当前请求结束时不会收集垃圾? 谢谢!

4
从HttpContext获取当前的System.Web.UI.Page吗?
这实际上是一个两部分的问题。首先,HttpContext.Current是否对应于当前的System.UI.Page对象? 第二个问题(可能与第一个问题有关)是为什么我不能使用以下内容查看当前页面是否实现了接口: private IWebBase FindWebBase() { if (HttpContext.Current as IWebBase != null) { return (IWebBase)HttpContext.Current.; } throw new NotImplementedException("Crawling for IWebBase not implemented yet"); } 一般情况是某些控件需要知道它们是作为SharePoint Webpart还是作为Asp.Net框架的一部分执行的。 我通过要求控件传递对自身的引用并检查控件的Page属性来解决了该问题,但是我仍然很好奇为什么上述方法不起作用。 编译器错误是:无法通过引用转换,装箱转换,拆箱转换,包装转换或空类型转换将System.Web.HttpContext转换为... IWebBase。

7
如何获取WCF应用程序的工作路径?
我想获取WCF应用程序的工作文件夹。我怎么才能得到它? 如果我尝试 HttpContext.Current.Request.MapPath(HttpContext.Current.Request.ApplicationPath) 我得到一个空引用异常(Http.Current对象为空)。 我对工作文件夹的意思是运行WCF服务的文件夹。如果设置aspNetCompatibilityEnabled="true",则会出现此错误: 服务器未提供有意义的回复;这可能是由于合同不匹配,会话过早关闭或内部服务器错误引起的。
69 wcf  path  httpcontext 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.