好的,我想了解更多有关ASP.Net如何在幕后工作的信息.我的意思是MVC或Webforms以及其他类似的框架.
基本上我想知道这些框架如何连接到ASP.Net,以便它们与IIS一起工作.创建一个简单的HttpApplication,与IIS一起使用并且既不使用MVC也不使用Webforms,最低限度是什么?在Web.config中需要的最低要求是什么?什么会被添加到Global.asax?
我正在尝试为加载的ASPNET HttpApplication测试一个'插件' Application_Start
.
代码是这样的:
private HttpApplication application;
public void Application_Start(object sender, EventArgs e)
{
this.application = sender as HttpApplication;
StartReportService();
}
private void StartReportService()
{
HandledReports = new SortedList<string, string>();
HandledReports.Add("myindex","myvalue");
}
public System.Collections.Generic.SortedList<String, String> HandledReports
{
get
{
application.Application.Lock();
var handledReports = (SortedList<String, String>)application.Application["handledReports"];
application.Application.UnLock();
return handledReports;
}
set
{
application.Application.Lock();
application.Application["handledReports"] = value;
application.Application.UnLock();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我无法找到测试的一个很好的方式HttpApplicationState
,主要是因为该HttpApplication.Application
属性是不可重写和似乎没有成为一个HttpApplicationBase
在课堂上System.Web.Abstractions
,将允许这一点.
我尝试了以下各种变体,每次都遇到路障.
[TestMethod()]
public void StartReportService_ApplicationStateShouldContainMyIndex()
{
//No HttpApplicationBase in System.Web.Abstractions, must use …
Run Code Online (Sandbox Code Playgroud) 我一直在研究HTTP Web服务器应用程序(通过TIdHTTPWebBrokerBridge
),并且在将文件加载到stream(TFileStream
)以发送回客户端时遇到一些问题.它不是每次都会发生,而是随机发生......我一直在例外......
Cannot open file "C:\SomePath\SomeFile.html". The process cannot access the file because it is being used by another process
它出现在这一行:
Str:= TFileStream.Create('C:\SomePath\SomeFile.html', fmOpenRead);
(Str是一个TFileStream
)
我假设这个消息代表自己,但我绝对需要避免它.此异常仅在调试模式下发生,但我需要调试此事情而不必担心始终收到此消息.
奇怪的是,大多数情况下,文件仍然被加载并发回.
我怎么能避免这个呢?为什么它不允许我不止一次打开它,即使它是只读的?
如果我想存储一些对象以跨页面和会话共享我应该使用哪一个?
HttpContext.Current.ApplicationInstance.Application
或HttpContext.Current.Application
.
我正在使用HttpContext.Current.Application
但只是在两者之间感到困惑.
我已经使用本文顶部的表格作为参考.我有三个问题:
1 - 多个用户(来自不同的物理位置)是否可以共享HttpApplication
实例?如果是这样,默认会发生这种情况吗?
2 - 多个用户(来自不同的物理位置)是否可以共享HttpApplicationState
实例?如果是这样,默认会发生这种情况吗?
3 - ASP.NET应用程序的多个用户是否可以共享单个实例或静态变量值?如果是这样,默认会发生这种情况吗?
谢谢你清理这个.
asp.net ×3
delphi ×1
delphi-xe2 ×1
global-asax ×1
lifecycle ×1
testing ×1
tfilestream ×1
web-config ×1