是否有可能在.net 1.1和.net 4.0应用程序之间共享应用程序数据?

本文关键字:应用程序 net 之间 共享 数据 有可能 是否 | 更新日期: 2023-09-27 18:07:17

这个问题可能很愚蠢,因为我对框架1.1知之甚少

我试图在两个不同的。net应用程序之间共享应用程序级别变量。一个是。net 1.1,另一个是。net 4.0。

场景如下:

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

我在App11中添加了App40,我在IIS 5.1中托管了App11。现在App40App11中的一个文件夹。

App40使用框架4.0的应用程序池,App11使用框架1.1的应用程序池。

我没有太多的.Net Framework 1.1知识。所以,我在谷歌上找到了。net Framework 1.1的状态管理技术。框架1.1似乎支持应用状态

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

App11 í中,我在Global.asaxApplication_Start()中定义了一个Application变量

protected void Application_Start(Object sender, EventArgs e)
        {
            Application["AppDATA"]="Application Data";
        }

我在App11应用程序中有一个Default.aspx页面。默认页面有一个超链接,可以重定向到App40/Default.aspx页面。

App40Default.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的默认页面。

当我点击链接时,我看不到任何来自框架1.1的应用程序数据,它只在页面上显示Application State failed to work !消息。

这个工作吗?或者我做这些事很愚蠢吗?

我还需要设置其他东西吗?

是否有可能在.net 1.1和.net 4.0应用程序之间共享应用程序数据?

在我看来,你的应用程序级别的变量是在应用程序级别,所以如果你有2个不同的应用程序,这似乎很合乎逻辑,他们不共享变量。我认为你需要使用一个文件,一个数据库,甚至一个webservice来在不同的应用程序之间共享数据…

不,您不能只是在指定的应用程序之间简单地共享数据(至少这是我所知道的)。

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

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

我希望我能帮上忙。

跨应用程序共享状态的唯一方法是某种持久化(数据库,cookie,查询字符串…)

这是不可能做到的方式,你正在尝试。不像会话状态有不同的模式(在内存,sql,会话服务器),应用程序状态总是存储在内存中。不同应用程序池中的应用程序运行在不同的进程中,因此不可能直接共享此信息。您需要将数据存储在一个进程中,并使用某种IPC。有很多可能性:SQL、Remoting、WCF、web service等。

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