c# - visual - La tarea de implementación web falló.(El inicializador de tipo para ''Microsoft.Web.Deployment.DeploymentManager'' lanzó una excepción).
web deploy iis 10 (10)
Recibo el siguiente error cuando utilizo el despliegue web de visual studio 2010. Falló la tarea de implementación web. (El inicializador de tipo para ''Microsoft.Web.Deployment.DeploymentManager'' lanzó una excepción).
¡De repente comencé a tener este error! Publiqué mi sitio muchas veces con la misma configuración, pero de repente comenzó a darme este error. ¿Podría ser algo en las propiedades del sitio web? Estoy usando asp.net y tengo Windows 7 y publicaciones en Windows Server R2. ¡Por favor ayuda!
De acuerdo, entonces llegué a este problema y ninguna de estas respuestas funcionó para mí. Lo reduje a una sola línea de código, a saber:
var deploymentOptions = new Microsoft.Web.Deployment.DeploymentBaseOptions();
Si no pasa esto manualmente a DeploymentManager, creará una instancia interna de este objeto. Aún más interesante fue que este código funcionaría bien para mí como la única línea de una aplicación de consola mientras fallaba si lo pongo en una prueba unitaria (comenzada con vstest).
Aquí está el cuerpo completo de la excepción:
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:
Después de hablar con el equipo de Microsoft que posee este componente, aprendí una solución simple:
Busque una clave en el registro en las siguientes rutas que señalen el ensamblado del problema y elimínelo:
HKLM/Software/Microsoft/IIS Extensions/msdeploy/3/extensibility
HKLM/Software/Wow6432Node/Microsoft/IIS Extensions/msdeploy/3/extensibility
La clave de registro problemática está instalada por SQL.
Hacer una "reparación" de la instalación de mi SQL Server solucionó el problema.
Para mí, reinicié Visual Studio y reconstruí el proyecto y pude publicar de nuevo (no vi que se sugiriera esta respuesta y funcionó para mí). Tal vez este es su paso uno antes de intentar otras respuestas sobre esta pregunta.
Parece que estoy sufriendo el mismo problema, pero solo cuando ejecuto localmente en IIS Express (mi instancia de IIS 8 ejecuta este código correctamente).
Cuando sigo la excepción por la pila (tres excepciones internas). Parece que la excepción real es la siguiente:
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
Lo extraño de esto es que esta DLL parece residir @ C:/Program Files (x86)/Microsoft SQL Server/110/DAC/bin/Microsoft.Data.Tools.Utilities.dll
pero en realidad tengo esta DLL ahí.
También es extraño que esto solo ocurra cada vez que intento inicializar un nuevo DeploymentBaseOptions
. Antes de hacer algo con él (así que no estoy haciendo ninguna llamada SQL, y ni siquiera he establecido ninguna propiedad en él.
¿Pensamientos?
Pude resolver este error reinstalando SQL Server. Reinstalé SQL 2012 Express, de MSDN, con este nombre de archivo.
solo descarga de 940 mb. Parece haber reparado whatevrer que conecté con todas las desinstalaciones manuales la semana pasada.
en_sql_server_2012_express_edition_with_tools_with_sp1_x64.exe
Espero que eso ayude.
Reinstalé Web Deployment 3.5 para que funcione en Windows 8.1. No se pudieron encontrar los archivos en el registro.
Simplemente desinstale el proveedor de Microsoft dbsqlpackage. Vaya a "Programas y características". Ya no se usa.
Tal vez necesites ejecutar aspnet_regiis
en el prompt del comando visual studio.
Tuve el mismo problema, pero instalar SQL 2012 y cambiar el registro no lo solucionó. Después de volver a instalar Web Deploy 3.5 en mi máquina de desarrollo, todo se solucionó.
Ya tenía SSMS 2014 y esto no parece causar ningún problema con la publicación en VS. El problema surgió más tarde después de instalar el motor de base de datos de SQL Server 2014.
Las entradas de registro a las que se refería Victor estaban en blanco. La reinstalación de VS2012 solucionó el problema.