Visual Studio 2010からWeb配置を使用すると、次のエラーが発生します。Web配置タスクが失敗しました。 (「Microsoft.Web.Deployment.DeploymentManager」のタイプ初期化子が例外をスローしました。)
突然このエラーが発生し始めました!同じ設定で何度もウェブサイトを公開しましたが、突然このエラーが発生し始めました。それはウェブサイトのプロパティに何かありますか?私はasp.netを使用していて、Windows 7を使用してWindows Server R2に公開しています。助けてください!
さて、私はこの問題にぶつかりましたが、これらの答えはどれもうまくいきませんでした。つまり、次の1行のコードに要約します。
var deploymentOptions = new Microsoft.Web.Deployment.DeploymentBaseOptions();
これを手動でDeploymentManagerに渡さない場合、内部的にこのオブジェクトがインスタンス化されます。さらに興味深いことに、このコードはコンソールアプリの唯一の行としてうまく機能し、単体テスト(vstestで開始)に入れると失敗しました。
例外の全体を次に示します。
System.TypeInitializationException occurred
HResult=-2146233036
Message=The type initializer for 'Microsoft.Web.Deployment.DeploymentManager' threw an exception.
Source=Microsoft.Web.Deployment
TypeName=Microsoft.Web.Deployment.DeploymentManager
StackTrace:
at Microsoft.Web.Deployment.DeploymentManager.GetLinkExtensions()
at Microsoft.Web.Deployment.DeploymentBaseOptions..ctor()
at SimpleTest.Test.UnitTest1.TestMethod1() in f:\Source\Projects\SimpleTest.Test\UnitTest1.cs:line 12
InnerException: System.TypeInitializationException
HResult=-2146233036
Message=The type initializer for 'Microsoft.Web.Deployment.BuiltInTypesCache' threw an exception.
Source=Microsoft.Web.Deployment
TypeName=Microsoft.Web.Deployment.BuiltInTypesCache
StackTrace:
at Microsoft.Web.Deployment.BuiltInTypesCache.get_Factories()
at Microsoft.Web.Deployment.DeploymentProviderFactoryCollection.LoadFromRegistry()
at Microsoft.Web.Deployment.DeploymentProviderFactoryCollection..ctor()
at Microsoft.Web.Deployment.DeploymentManager.LoadDeploymentManagerSettings()
at Microsoft.Web.Deployment.DeploymentManager..cctor()
InnerException: Microsoft.Web.Deployment.DeploymentException
HResult=-2146233088
Message=The provider 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderFactory' could not be loaded.
Source=Microsoft.Web.Deployment
StackTrace:
at Microsoft.Web.Deployment.DeploymentProviderFactory.Create(Type type)
at Microsoft.Web.Deployment.BuiltInTypesCache.InspectTypesForWebDeployAttributes(IEnumerable`1 types, String dllName)
at Microsoft.Web.Deployment.BuiltInTypesCache..cctor()
InnerException: Microsoft.Web.Deployment.DeploymentException
HResult=-2146233088
Message=The type 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderFactory' could not be loaded. The configuration settings may not be valid.
Source=Microsoft.Web.Deployment
StackTrace:
at Microsoft.Web.Deployment.ReflectionHelper.CreateInstance[T](Type type, Object[] constructorArguments)
at Microsoft.Web.Deployment.DeploymentProviderFactory.Create(Type type)
InnerException: System.TypeInitializationException
HResult=-2146233036
Message=The type initializer for 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory' threw an exception.
Source=mscorlib
TypeName=Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory
StackTrace:
at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)
at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)
at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Microsoft.Web.Deployment.ReflectionHelper.CreateInstance[T](Type type, Object[] constructorArguments)
InnerException: System.IO.FileNotFoundException
HResult=-2147024894
Message=Could not load file or Assembly 'Microsoft.Data.Tools.Schema.Sql, Version=10.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Source=Microsoft.Data.Tools.Schema.DbSqlPackage
FileName=Microsoft.Data.Tools.Schema.Sql, Version=10.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
FusionLog=""
StackTrace:
at Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory..cctor()
InnerException:
このコンポーネントを所有しているマイクロソフトのチームと話し合った後、私は簡単な解決策を学びました:
問題のアセンブリを指す次のパスの下のレジストリでキーを探し、それを削除します。
HKLM\Software\Microsoft\IIS Extensions\msdeploy\3\extensibility
HKLM\Software\Wow6432Node\Microsoft\IIS Extensions\msdeploy\3\extensibility
問題のレジストリキーはSQLによってインストールされます。
Microsoft dbsqlpackageプロバイダーをアンインストールするだけです。 「プログラムと機能」に移動します。使用されなくなりました。
同じ問題がありましたが、SQL 2012をインストールしてレジストリを変更しても問題は解決しませんでした。開発マシンに Web Deploy 3.5 を再インストールした後、問題は解決しました。
私にとっては、Visual Studioを再起動してプロジェクトを再構築したところ、再度公開することができました(この回答が表示されなかったので、うまくいきました)。たぶんこれは、この質問に対して他の答えを試す前のステップです。
Windows 8.1で動作するように、Web Deployment 3.5を再インストールしました。レジストリにファイルが見つかりませんでした。
SQL Serverを再インストールすることで、このエラーを解決できました。このファイル名を使用して、MSDNからSQL 2012 Expressを再インストールしました。
ダウンロードは940 MBのみです。先週私が手動でアンインストールしたことでジャッキアップしたwhatevrerを修復したようです。
en_sql_server_2012_express_edition_with_tools_with_sp1_x64.exe
お役に立てば幸いです。
SQL Serverインストールの「修復」を行うと、問題が解決しました。
私は同じ問題に苦しんでいるようですが、IIS Expressでローカルで実行している場合のみです(私のIIS 8インスタンスはこのコードを正常に実行します)。
例外をスタックで追跡すると(3つの内部例外)。 actual例外は次のようです:
_Could not load file or Assembly 'Microsoft.Data.Tools.Schema.Sql, Version=10.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.":"Microsoft.Data.Tools.Schema.Sql, Version=10.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
_
これの奇妙なことは、これがDLL @ C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Microsoft.Data.Tools.Utilities.dll
にあるように見えることですが、実際にはこれがDLLに座っています。
これが奇妙なのは、これが新しいDeploymentBaseOptions
を初期化しようとしたときにのみ発生することです。それで何かをする前に(SQL呼び出しを行っておらず、プロパティも設定していません。
考え?
私はすでにSSMS 2014を持っていましたが、これはVSでの公開に問題を引き起こさないようでした。この問題は、SQL Server 2014データベースエンジンをインストールした後で発生しました。
ビクターが参照したレジストリエントリは空白でした。 VS2012を再インストールすると問題が修正されました。
多分あなたはビジュアルスタジオのコマンドプロンプトでaspnet_regiis
を実行する必要があります。