2017-07-21 3 views
1

IIS 8にアプリケーションを移動する準備ができたら、Windows 10でhresult:c00cef03エラーが発生します。 web.configファイルにruntime/assemblyBinding要素が含まれている限り、appcmd.exeまたはinetmgrを使用してweb.configに変更を加える場合は、Windows Server 2012 R2。<runtime>/<assemblyBinding>要素がファイル内に存在する場合、IIS 8.0では、appcmdまたはinetmgrがweb.configに変更を加えることができません。

誰もがこれまでに見たことがあり、回避策はありますか?

は以下APPCMD出力の例です:

C:>C:\Windows\System32\inetsrv\appcmd.exe set config "Default Web Site/Configuration" -section:anonymousAuthentication /username 
:"" 
Applied configuration changes to section "system.webServer/security/authenticati 
on/anonymousAuthentication" for "MACHINE/WEBROOT/APPHOST/Default Web Site/Config 
uration" at configuration commit path "MACHINE/WEBROOT/APPHOST/Default Web Site/ 
Configuration" 
ERROR (hresult:c00cef03, message:Failed to commit configuration changes. 
) 

次はあなたが問題を再現するために使用することができますweb.configファイルの内容です。要素が存在するだけでエラーが発生するように見えますが、アセンブリのIDは重要ではありません。

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <security> 
     <authentication> 
     <anonymousAuthentication enabled="true" userName="IUSR" /> 
     </authentication> 
    </security> 
    </system.webServer> 
    <runtime> 
    <asm:assemblyBinding xmlns:asm="urn:schemas-microsoft-com:asm.v1"> 
     <asm:dependentAssembly> 
     <asm:assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <asm:bindingRedirect oldVersion="4.5.0.0-9.0.0.0" newVersion="9.0.0.0" /> 
     </asm:dependentAssembly> 
    </asm:assemblyBinding> 
    </runtime> 
</configuration> 
+0

のWindows 10回私はこれを再現することができますが、簡単に修正を見つけることができません10. –

+0

をIIS。この場合でもIISマネージャーは変更を加えることができないので、MWAのバグでなければなりません。 –

+0

私はその原因が ''タグであり、その子にはIISに登録されているレスポンススキーマ情報がないと思います。スキーマファイルを追加してこれを修正できるかどうかはまだ分かりません。 –

答えて

1

これは実際の回答ではありません。

私はマイクロソフトのソースコードにアクセスすることはできませんが、an IIS Manager cloneを維持しています。だからあなたの説明を読んだ後、私は続けて調査しました。これまでのところ私の結論は、<runtime>タグはスキーマファイルで簡単に処理できないということです。 (そのため、それ自体のスキーマファイルを持つ<system.web>アイテムとは異なり、それを扱う既存のスキーマファイルが存在しません)。私はJexusマネージャに与えた

ソリューションはmachine.config<runtime>タグを読み取ることで無視されa new commit、です。

IIS 7.0および7.5のIISマネージャーでも、同じトリックを使用して<runtime>タグを無視するとしか推測できません。しかし、開発者は、.NET Framework 4.0用にSystem.Configuration.IgnoreSectionをハードコーディングしている可能性があります。これは.NET Framework 4.0以上では機能しません。 1つのサポートされている事実は、IIS 8.0およびそれ以降のバージョンでは、IISマネージャー(およびMWA API)は2.0以降では.NET Framework 4.0で完全に動作するということです。

この段階では、このバグをマイクロソフトに報告するだけで、修正できることを願っています。そして、彼らは修正したくない場合、あなたはほとんど選択肢がないが、IISのAPIを呼び出して、終了したら)それをバック追加する前に<runtime>タグを削除

  • のように、回避策を使用。

残念ながら、Jexus Managerのコードベースに基づいてappcmdクローンを開発する時間がありません。それ以外の場合は、試してみることができます。

+0

ありがとうLex!マイクロソフトとサポートチケットを開きます。 – WenningQiu

1

私は、問題を解決するために検証したアセンブリのバインディング要素からXML名前空間接頭辞を削除することをマイクロソフトから提案しています。正しいXML構文が拒否されるのは理想的ではありませんが、これは容認できる解決策です。

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
    <bindingRedirect oldVersion="4.5.0.0-9.0.0.0" newVersion="9.0.0.0" /> 
    </dependentAssembly> 
</assemblyBinding> 

関連する問題

 関連する問題