Хостинг .Net 4 как дочерний сайт .Net 3.5 - PullRequest
0 голосов
/ 15 июня 2010

Я пытаюсь добавить приложение Silverlight, работающее в пуле приложений .Net 4, в качестве дочернего приложения приложения ASP.Net, работающего в классическом пуле приложений .Net.Я получаю несколько ошибок конфигурации из-за того, что приложение Silverlight наследует элементы конфигурации от родительского приложения.Кто-нибудь знает статью или некоторые основные шаги, которые могут помочь прояснить процесс выполнения этой задачи?

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

Переместите systemGweb.extensions sectionGroup из родительского 3.5 web.config в корневой 2.0 web.config, расположенный на машине. Вам, вероятно, не нужно перемещать все разделы, просто «system.web.extensions». Корневой web.config 2.0 находится здесь: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG или здесь: C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ CONFIG.

<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>    
</configSections>

Кажется странным, что нужно изменить корневой файл web.config, но он работает.

Вам также нужно будет обернуть раздел в родительском файле web.config тегом location так:

<location path="" inheritInChildApplications="false" >
  <appSettings />
  <connectionStrings />
  <system.web>
    <!-- Removed for brevity -->
  </system.web>
  <system.codedom>
    <!-- Removed for brevity -->
  </system.codedom>
  <system.webServer>
    <!-- Removed for brevity -->
  </system.webServer>
</location>

Смотрите здесь:

Не удается запустить дочерние приложения ASP.NET 4 под приложениями ASP.NET 2.0 или ASP.NET 3.5

0 голосов
/ 15 июня 2010

Два приложения (.NET 3.5 и .NET 4) должны будут работать в разных пулах приложений.

Т.е. дочерняя папка, содержащая приложение .NET 4, должна быть собственным приложением, назначенным длядругой пул приложений.

Однако ни одно из них не будет приложением Silverlight - это будет профиль сервера .NET (Silverlight не имеет смысла, это для клиентских приложений, а не для веб-сайта).

...