Установка .NET 3.5 SP1 на сервере сломала WCF - PullRequest
0 голосов
/ 09 июля 2009

Я установил .NET 3.5 SP1 на сервер, на котором ранее был .NET 3.0 SP2.

До установки сайт работал отлично. После установки и последующего перезапуска сервера сайт отображается, но все, что использует службу WCF, перестало работать. Журнал исключений сообщает об исключениях, таких как следующие, когда какие-либо вызовы сделаны к клиентскому прокси:

Объект связи, System.ServiceModel.Channels.ServiceChannel, не может использоваться для связи, поскольку он находится в состоянии Failed.

Журнал событий приложения сервера выдал следующие ошибки после установки:

  • Раздел конфигурации system.serviceModel.activation уже существует в каталоге c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Config \ machine.config.

  • Раздел конфигурации system.runtime.serialization уже существует в каталоге c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Config \ machine.config.

  • Раздел конфигурации system.serviceModel уже существует в каталоге c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Config \ machine.config.

, что, похоже, соответствует тому факту, что все, что связано с WCF, перестало работать.

У меня нет опыта в настройках сервера или WCF, поэтому я ищу какую-либо помощь в этом.

Спасибо !!

Из machine.config:

<sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="behaviors" type="System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="bindings" type="System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="client" type="System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="comContracts" type="System.ServiceModel.Configuration.ComContractsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="commonBehaviors" type="System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/>
            <section name="diagnostics" type="System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="extensions" type="System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="machineSettings" type="System.ServiceModel.Configuration.MachineSettingsSection, SMDiagnostics, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/>
            <section name="serviceHostingEnvironment" type="System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="services" type="System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        </sectionGroup>
        <sectionGroup name="system.serviceModel.activation" type="System.ServiceModel.Activation.Configuration.ServiceModelActivationSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="diagnostics" type="System.ServiceModel.Activation.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="net.pipe" type="System.ServiceModel.Activation.Configuration.NetPipeSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
            <section name="net.tcp" type="System.ServiceModel.Activation.Configuration.NetTcpSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        </sectionGroup>

<sectionGroup name="system.runtime.serialization" type="System.Runtime.Serialization.Configuration.SerializationSectionGroup, System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <section name="dataContractSerializer" type="System.Runtime.Serialization.Configuration.DataContractSerializerSection, System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    </sectionGroup>

с сайта web.config

  <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>

. , .

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="WSHttpBinding_IService" closeTimeout="00:03:00"
      openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00"
      bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
      maxBufferPoolSize="524288" maxReceivedMessageSize="131072" messageEncoding="Text"
      textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <reliableSession ordered="true" inactivityTimeout="00:10:00"
        enabled="false" />
      <security mode="Message">
        <transport clientCredentialType="Windows" proxyCredentialType="None"
          realm="" />
        <message clientCredentialType="Windows" negotiateServiceCredential="true"
          algorithmSuite="Default" establishSecurityContext="true" />
      </security>
    </binding>       
  </wsHttpBinding>
</bindings>
<client>
  <endpoint address="some address"
    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService"
    contract="some contact" name="WSHttpBinding_IService" />      
</client>

Соответствующий раздел об исключениях:

Информация об исключении: Тип исключения: TypeLoadException Сообщение об исключении: не удалось загрузить тип 'System.Web.UI.ScriptReferenceBase' из сборки 'System.Web.Extensions, версия = 3.5.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35'.

Ответы [ 5 ]

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

Если вы размещаете службу WCF в IIS, что может показаться вам, попробуйте перезапустить средство регистрации IIS asp.net.

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i

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

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

Возникают проблемы при загрузке веб-сайта с поддержкой Ajax Control Toolkit на ваш сервер? Продолжайте читать для быстрого и легкого решения! Сценарий

Если вы добавили на свой веб-сайт некоторые из расширений Ajax Control Toolkit, вы, вероятно, протестировали их на своем локальном компьютере разработчика и поразились тому, как легко было добавить на ваш сайт впечатляющий эффект. Затем, как только вы думаете, что ваша работа завершена за день и пришло время разместить ваше новое творение в сети, вы получаете сообщение об ошибке:

Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

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

Если ваш сайт только что сломался и вы хотите, чтобы он работал быстро, самое простое решение - изменить ваш тег на обычный тег.

ToolkitScriptManager - это элемент управления оберткой, который предоставляет функции ScriptManager, но также имеет функцию объединения сценариев для уменьшения количества внешних ссылок на JavaScript, генерируемых инструментарием.

Так просто, как взять код

и изменение его на

(у вас может быть префикс, отличный от cc1, но это не имеет значения). The Real Fix

Реальная причина того, что ваш сайт выдает ошибку, заключается в том, что в последней версии Ajax Control Toolkit ожидается наличие среды выполнения .net 3.5 SP1. Ключевым битом здесь является SP1, что означает Service Pack 1.

Чтобы исправить это, вам просто нужно установить версию SP1, которую можно скачать здесь:

* http://www.microsoft.com/downloads/details.aspx?familyid=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=en

Это нужно запустить на вашем сервере, поэтому для этого вам понадобится доступ к удаленному рабочему столу. Этот вид управления вашим сервером обычно доступен только с выделенными серверами или виртуальными серверами VPS.

Если у вас есть простой пакет общего хостинга, вам нужно связаться с вашим веб-хостингом и выяснить, почему они еще не обновились. Релиз SP1 был серьезным обновлением, в которое включены не только многие исправления ошибок, но и некоторые новые замечательные функции, такие как динамические данные ASP.NET. Вы можете прочитать все о новых функциях по ссылке для скачивания выше.

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

0 голосов
/ 09 июля 2009

Ну, биты дублирования - красная сельдь, ключ - твое исключение.

System.Web.UI.ScriptReferenceBase - это новая сборка в 3.5 SP1. Если он жалуется там, то на сервере только 3.5 установлен и требуется пакет обновления. Вы на 100% установили 3.5 SP1 на сервер?

0 голосов
/ 10 июля 2009

Типовые исключения нагрузки иногда бывают хитрыми. Вы можете попробовать использовать Fuslogvw.exe и посмотреть, сможете ли вы определить источник ошибки загрузки (какие пути проверки и т. Д.) Документация Fuslog

0 голосов
/ 09 июля 2009

Вы перестраивали код, используя .NET 3.5 SP1 (Visual Studio 2008 SP1)?

Пожалуйста, опубликуйте полные исключения вместе со следами стека. Они могут быть доступны в журнале событий приложений, как предупреждения из источника «ASP.NET».


Я смутно помню такую ​​ошибку, связанную с порядком сборок в разделе <assemblies>. Попробуйте сначала поставить system.core в порядке.

...