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

时间:2013-04-03 11:14:51

标签: c# asp.net .net

问题可能很愚蠢,因为我不太了解框架1.1

我正在尝试在两个不同的.net应用程序中共享应用程序级别变量。 一个是.net 1.1,另一个是.net 4.0。

以下是该方案:

我创建了一个使用Visual Studio 2003定位App11的应用程序(.Net Framework 1.1)。 我还创建了一个在Visual Studio 2010中定位App40的网站(.Net Framework 4.0)。

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

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

我在.Net Framework 1.1中没有太多的知识。所以,我谷歌并找到了state management techniques for .Net Framework 1.1。似乎Framework 1.1支持应用程序状态

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

App11已在Application_Start()的{​​{1}}中定义了一个应用变量。

Global.asax

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

App40/Default.aspxDefault.aspx的Codebehind文件中,我这样做了:

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 !"; } 的默认页面声明。

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

这有用吗?或者我在尝试这些事情是愚蠢的吗?

除了我做过的事情之外,我还需要设置任何东西吗?

4 个答案:

答案 0 :(得分:1)

据我所知,您的应用程序级别变量在应用程序级别上,因此如果您有2个不同的应用程序,那么它们似乎非常逻辑,它们不共享变量。 我认为您需要使用文件,数据库甚至Web服务来在不同的应用程序之间共享数据......

答案 1 :(得分:0)

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

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

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

我希望我能帮忙。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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