【问题标题】:Is it possible to share Application data between .net 1.1 and .net 4.0 applications.net 1.1 和 .net 4.0 应用程序之间是否可以共享应用程序数据
【发布时间】:2013-04-04 23:43:46
【问题描述】:

问题可能很愚蠢,因为我对框架 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)。

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

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

我对@9​​87654335@ 了解不多。所以,我在谷歌上找到了state management techniques for .Net Framework 1.1。看来 Framework 1.1 支持 Application State

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

在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 的代码隐藏文件中,我已经这样做了:

//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 的默认页面声明。

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

这行得通吗?还是我在尝试这些愚蠢的事情?

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

【问题讨论】:

标签: c# asp.net .net


【解决方案1】:

据我所知,您的应用程序级别变量位于应用程序级别,因此如果您有 2 个不同的应用程序,它们不共享变量似乎很合乎逻辑。 我认为您需要使用文件、数据库甚至网络服务在不同的应用程序之间共享数据...

【讨论】:

    【解决方案2】:

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

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

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

    我希望我能帮上忙。

    【讨论】:

      【解决方案3】:

      您要跨应用程序共享状态的唯一方法是某种持久性(数据库、cookie、查询字符串...)

      【讨论】:

        【解决方案4】:

        不可能按照您尝试的方式进行。与具有不同模式(内存、sql、会话服务器)的会话状态不同,应用程序状态为always stored in memory。不同应用程序池中的应用程序在不同的进程中运行,因此无法直接共享此信息。您需要将数据存储在一个进程中并使用某种 IPC。有很多可能性:SQL、Remoting、WCF、Web 服务等。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-03
          相关资源
          最近更新 更多