C# 是否可以在.net 1.1和.net 4.0应用程序之间共享应用程序数据

C# 是否可以在.net 1.1和.net 4.0应用程序之间共享应用程序数据,c#,asp.net,.net,C#,Asp.net,.net,这个问题可能很傻,因为我对框架1.1不太了解 我试图在两个不同的.net应用程序之间共享应用程序级别变量。 一个是.NET1.1,另一个是.NET4.0 以下是场景: 我已经使用VisualStudio2003创建了一个应用程序(App11),它的目标是.NETFramework 1.1。 我还创建了一个网站(App40),目标是Visual Studio 2010中的.Net Framework 4.0 我在App11中添加了App40,我在iis5.1中托管了App11。现在App40是Ap

这个问题可能很傻,因为我对框架1.1不太了解

我试图在两个不同的.net应用程序之间共享应用程序级别变量。 一个是.NET1.1,另一个是.NET4.0

以下是场景:

我已经使用VisualStudio2003创建了一个应用程序(
App11
),它的目标是
.NETFramework 1.1
。 我还创建了一个网站(
App40
),目标是Visual Studio 2010中的
.Net Framework 4.0

我在
App11
中添加了
App40
,我在iis5.1中托管了
App11
。现在
App40
App11
中的一个文件夹

App40
具有框架4.0的应用程序池,
App11
具有框架1.1的应用程序池

我对
.netframework1.1
了解不多。所以,我在谷歌上找到了。框架1.1似乎支持应用程序状态

我认为应用程序管理会起作用。所以,我试过这样做:

//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
中,我在
Global.asax
Application\u Start()
中定义了一个应用程序变量

protected void Application_Start(Object sender, EventArgs e)
        {
            Application["AppDATA"]="Application Data";
        }
我在
App11
应用程序中有一个
Default.aspx
页面。默认页面有一个可重定向到
App40/Default.aspx
页面的超链接

Default.aspx
App40
代码隐藏文件中,我这样做:

//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
声明

当我点击链接时,我看不到任何来自Framework1.1的应用程序数据,它只显示
应用程序状态failed to work页面上的消息

这行吗?还是我在做这些蠢事


除了我所做的事情之外,我还需要设置什么吗?

据我所知,您的应用程序级变量位于应用程序级,因此,如果您有两个不同的应用程序,那么它们不共享变量似乎很合理。
我认为您需要使用文件、数据库甚至Web服务在不同的应用程序之间共享数据…

不,您不能只在指定的应用程序之间共享数据(至少我知道这一点)

您需要将数据存储到外部位置,如XML文件。一个应用程序将数据写入文件,另一个应用程序可以读取数据。或者你可以让他们做同样的事情

您还可以使用数据库来存储数据。这也可以像我提到的XML文件那样工作


我希望我能帮上忙。

不可能用你目前的方式来做。与具有不同模式(内存、sql、会话服务器)的会话状态不同,应用程序状态为。不同应用程序池中的应用程序在不同的进程中运行,因此无法直接共享此信息。您需要将数据存储在一个进程中,并使用某种IPC。有很多可能性:SQL、远程处理、WCF、web服务等


请注意,即使它们位于同一应用程序池中,它们也不会自动共享应用程序状态,因为它们将在不同的应用程序域中运行。但是如果没有操作系统隔离,它们之间的共享会更容易。

在应用程序之间共享状态的唯一方法是某种持久性(数据库、cookie、查询字符串…)

相关/有用吗?和