web-dev-qa-db-ja.com

構成セクション 'system.servicemodel'は、セクション宣言が欠落しているため読み取ることができません

少し問題があります。私の古いウェブサーバー(windows 2003)は、2008 R2に置き換えられました。私はその上で管理者アカウントを与えられており、私が望むことは何でもできますが、私はこの分野の専門家ではありません。アプリケーション開発とWebサーバー(iis7)を持つようにロールを構成しました。

しかし、私のウェブサイトは.NET4を実行し、役割は3.5のみをインストールしました。そのため、サーバーに.NET4を手動でインストールしようとしました。私の問題は、私のweb.configのSystem.ServiceModelセクションが原因で、私のWebサイトが動作しないことです。 .NET4アプリケーションプールで実行されることを確認しました。

これはWCFの問題だと思いますが、解決方法を理解できません。私はグーグルで見つけたすべてを試しました。 aspnet_regis、ServiceModelReg.exeなど。ウェブサーバーの役割を再インストールすることも試みましたが、サイトの設定を入力しようとするたびにこのエラーが表示されます。

これを修正する方法を知っている専門家がここにいることを望んでいます。

31
Nicolai

どうやらIIS7には、空であってもSystem.WebServerセクションが必要なようです。 web.configファイルに次を追加すると、問題が解決しました。

  <system.webServer>
  </system.webServer>
6
Nicolai

同じエラーメッセージが表示されたのは、そのサーバーに.NET 3.5.1フレームワークがなかったためです。それを有効にすると私の問題が修正されました: http://blogs.msdn.com/b/sqlblog/archive/2010/01/08/how-to-install-net-framework-3-5-sp1-on- windows-server-2008-r2-environments.aspx

32
Mike Mooney

IISのアプリケーションプールに移動し、[アプリケーションプールの既定値の設定] [右上隅にある]を選択して、.netフレームワークのバージョンを確認します。

注:デフォルトでは.net 4.0バージョンとして選択されます

26
kumaresh babu

このエラーが発生する別の理由がありました。

これは、Microsoft.IdentityModelライブラリがSystem.identityModelに置き換えられた.Net 4.0から4.5へのMVCプロジェクトの移行中に発生しました。私の場合、必要なWeb.Config移行手順はすべて完了しました ここにリストされています ですが、configSectionsセクションのセクション名を変更するのを忘れていました。

<configSections>
 <section name="Microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>

ここに記述 のように、セクション定義は次のようになります。

<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
5
Alex A.

私にとっての問題は、WCFサービスがインストールされていないことでした。それをインストールすると問題が解決しました: http://blogs.msdn.com/b/knom/archive/2009/10/14/iis7-wcf-services-svc-do-not-work.aspx

サイトを2.0で実行する必要があるため、アプリケーションプールの.NETバージョンを2.0から4.0に変更することは選択肢ではありませんでした。

3
oonyalo

私のプロジェクトは.net 2.0で実行する必要があるため、このリンクをたどる必要があり、solution 3で動作します:file.jsを実行します

http://blogs.msdn.com/b/wenlong/archive/2010/11/23/why-does-machine-config-contain-invalid-xml-content-after-installing-net-3- 5-patches.aspx

1
Grey Wolf

私は同じ問題を抱えていました...私は単純にそれを修正しました:aspnet_regiis.exe -i

0
usr4217

.NET Framework 3.5をインストールしたくない私にとって、解決策はsystem.serviceModelセクションのmachine.config into web.configファイル:

<configuration>
  <configSections>
    <sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <section name="behaviors" type="System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="bindings" type="System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="client" type="System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="comContracts" type="System.ServiceModel.Configuration.ComContractsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="commonBehaviors" type="System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/>
        <section name="diagnostics" type="System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="extensions" type="System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="machineSettings" type="System.ServiceModel.Configuration.MachineSettingsSection, SMDiagnostics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/>
        <section name="protocolMapping" type="System.ServiceModel.Configuration.ProtocolMappingSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="serviceHostingEnvironment" type="System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowDefinition="MachineToApplication"/>
        <section name="services" type="System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="standardEndpoints" type="System.ServiceModel.Configuration.StandardEndpointsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="routing" type="System.ServiceModel.Routing.Configuration.RoutingSection, System.ServiceModel.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <section name="tracking" type="System.ServiceModel.Activities.Tracking.Configuration.TrackingSection, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </sectionGroup>
  </configSections>
  <system.serviceModel>
    <!-- ... -->
  </system.serviceModel>
</configuration>
0