[英]Is it possible to share Application data between .net 1.1 and .net 4.0 applications
这个问题可能很愚蠢,因为我对框架1.1的了解不多
我正在尝试在两个不同的.net应用程序之间共享应用程序级别的变量。 一个是.net 1.1,另一个是.net 4.0。
这是场景:
我已经使用Visual Studio 2003创建了一个针对.Net Framework 1.1
的应用程序( App11
)。我还创建了一个针对Visual Studio 2010中的.Net Framework 4.0
网站( App40
)。
我已经添加了App40
在App11
,我已经主持App11
在IIS 5.1。 现在App40
是一个文件夹App11
。
App40
具有带有框架4.0的应用程序池,而App11
具有带有框架1.1的应用程序池。
我对.Net Framework 1.1
不太了解。 因此,我在Google上找到了.Net Framework 1.1的状态管理技术 。 似乎Framework 1.1支持应用程序状态
我认为应用程序管理会起作用。 所以,我已经试过像这样:
在App11
已在Global.asax
的Application_Start()
中定义了一个Application变量。
protected void Application_Start(Object sender, EventArgs e)
{
Application["AppDATA"]="Application Data";
}
我在App11
应用程序中有一个Default.aspx
页面。 “默认”页面上有一个超链接,可重定向到App40/Default.aspx
页面。
在App40
中Default.aspx
的Codebehind文件中,我这样做如下:
//Application State check
if (Application["AppDATA"] != null)
{
applicationState.Text = "Got application state data :"+Application["AppDATA"].ToString();
}
else
{
applicationState.Text = "Application State failed to work !";
}
我已经构建了两个应用程序,并在App11
Default页面中进行了App11
。
当我单击链接时,我看不到任何来自Framework 1.1的应用程序数据,它仅显示Application State failed to work !
无效Application State failed to work !
页面上的消息。
这行得通吗? 还是我尝试这些愚蠢的事情?
除已完成的工作外,我是否还需要设置其他任何内容?
据我所知,您的应用程序级变量位于应用程序级,因此,如果您有2个不同的应用程序,则看起来很逻辑,它们不共享变量。 我认为您需要使用文件,数据库甚至Web服务在不同应用程序之间共享数据...
不,您不能仅在指定的应用程序之间共享数据(至少我知道这一点)。
您将需要将数据存储到XML文件等外部位置。 一个应用程序会将数据写入文件,其他应用程序可以读取它。 或者,您可以让他们两个做同一件事。
您还可以使用数据库来存储数据。 这也可以像我提到的XML文件一样工作。
我希望能有所帮助。
无法按照您尝试的方式进行操作。 与具有不同模式(在内存,sql,会话服务器中)的会话状态不同,应用程序状态始终存储在memory中 。 不同应用程序池中的应用程序以不同的进程运行,因此无法直接共享此信息。 您需要将数据存储在一个过程中,并使用某种IPC。 有很多可能性:SQL,远程处理,WCF,Web服务等。
请注意,即使它们位于同一应用程序池中,它们也不会自动共享应用程序状态,因为它们将在不同的App Domain中运行。 但是,如果没有操作系统隔离,它们之间的共享将更加容易。
您要在应用程序之间共享状态的唯一方法是某种持久性(数据库,cookie,查询字符串...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.