2013-04-03 2 views
0

На вопрос (ы) может быть глупо, потому что я так много выигрыш знания о рамках 1,1Можно ли обмениваться данными приложений между .NET 1.1 и .NET 4.0 приложений

Я пытаюсь разделить переменную на уровне приложений среди двух разных приложений .net. один есть .net 1.1 и другой есть .net 4.0.

Вот сценарий:

Я создал приложение (App11), который нацелен на .Net Framework 1.1 с помощью Visual Studio 2003. Я также создал веб-сайт (App40), нацеленную .Net Framework 4.0 в Visual Studio 2010.

Я добавил App40 в App11, я разместил App11 в IIS 5.1. Теперь App40 - это папка в App11.

App40 имеет пул приложений с каркасом 4.0 и App11 имеет пул приложений с каркасом 1.1.

У меня нет большого количества знаний в .Net Framework 1.1. Итак, у меня есть google и найдено state management techniques for .Net Framework 1.1. Кажется, что Framework 1.1 поддерживает Application State

Я думал, что управление приложениями будет работать. Итак, я пробовал вот так:

В App11 была определена переменная приложения в Application_Start() от Global.asax.

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

У меня есть Default.aspx страницу в App11 приложении. Страница по умолчанию имеет гиперссылку для перенаправления на страницу App40/Default.aspx.

В Codebehind файл 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.

Когда я нажимаю на ссылку, я не мог видеть никаких данных приложения, полученных из Framework 1.1, на странице отображается только сообщение Application State failed to work !.

Это работает? или я пытаюсь сделать это глупо?

Нужно ли мне что-то настраивать в дополнение к тому, что я сделал?

+0

http://stackoverflow.com/questions/617256/best-way- to-share-session-state-type-data-between-two-net-applications, релевантные/полезные? и http://blogs.lessthandot.com/index.php/WebDev/ServerProgramming/ASPNET/sharing-asp-net-session-state-between-we – gordatron

ответ

1

Насколько я понимаю, ваши переменные уровня приложения находятся на уровне приложения, поэтому, если у вас есть 2 разных приложения, кажется, что логика не разделяет переменные. Я думаю, вам нужно использовать файл, базу данных или даже веб-сервис для обмена данными между различными приложениями ...

0

Нет, вы не можете просто делиться данными между указанными вами приложениями (по крайней мере, это то, что я знаю).

Вам нужно будет хранить данные во внешнем месте, таком как XML-файл. Одно приложение записывает данные в файл, а другое может читать его. Или вы можете заставить обоих сделать то же самое.

Вы также можете использовать базу данных для хранения данных. Это также будет работать, как я упоминал в XML-файле.

Я надеялся, что помог.

0

Это невозможно сделать так, как вы пытаетесь. В отличие от состояния сеанса, которое имеет разные режимы (в памяти, sql, сеансовом сервере). Состояние приложения: always stored in memory. Приложения в разных пулах приложений выполняются в разных процессах, поэтому невозможно напрямую поделиться этой информацией. Вам нужно будет хранить данные в одном процессе и использовать какой-то IPC. Существует много возможностей: SQL, Remoting, WCF, веб-сервис и т. Д.

Обратите внимание, что даже если они были в одном пуле приложений, они не будут автоматически делить состояние приложения, так как они будут работать в разных доменах приложений. Но без изоляции ОС было бы проще делиться между ними.

0

Единственный способ вы собираетесь разделить состояние в различных приложениях является своего рода настойчивость (база данных, печенье, строки запросов ...)