Я пытаюсь установить SQL Server 2012 Express на 64-разрядный компьютер с Windows 7. Также не удается установить SQL Server 2008 R2. Загрузчик извлекает все файлы, запускает setup.exe (со всплывающим окном UAC), а затем (насколько я могу судить) пытается запустить scriptengine.exe, который отказывается запускаться.
Подробная информация об ошибке из MSSQL 2012 Express:
Описание: Перестал работать
Сигнатура проблемы:
Имя проблемного события: CLR20r3
Сигнатура проблемы 01: scriptengine.exe Сигнатура проблемы 02: 11.0.2100.60
Сигнатура проблемы 03: 4f35e1de
Сигнатура проблемы 04: Microsoft.SqlServer.Chainer.Infrastructure
Сигнатура проблемы 05: 11.0.0.0
Сигнатура проблемы 06: 4f35e1dd
Сигнатура проблемы 07: 200
Сигнатура проблемы 08: 179
Сигнатура проблемы 09: ZAGSF01GRLFWVJMY5S0U0HXSJJE2HDT4
Версия ОС: 6.1.7601.2.1.0.256.48
Идентификатор языка: 1033
Я извлек установочные файлы и запустил из командной строки, и я получаю следующую ошибку:
Необработанное исключение: Microsoft.SqlServer.Chainer.Infrastructure.ChainerInfrastructureException: блок среды, используемый для запуска процесса, не может быть длиннее 65535 байт. Длина блока среды составляет 162180 байт. Удалите некоторые переменные среды и повторите попытку. ---> System.InvalidOperationException: блок среды, используемый для запуска процесса, не может быть длиннее 65535 байт. Длина блока среды составляет 162180 байт. Удалите некоторые переменные среды и повторите попытку.
в System.Diagnostics.EnvironmentBlock.ToByteArray (StringDictionary sd, Boolean unicode) в System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated (SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCame output, String currentDir, TempFileCame output) CodeDom.Compiler.Executor.ExecWaitWithCapture (SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String & outputName, String & errorName, String trueCmdLine) в параметрах String и String.CSharpCodeGenerator, параметры компилятора String, CompilerPilerArгументы (параметры компилятора CompilerPiler) String & outputFile, Int32 и nativeReturnValue, String trueArgs)
в Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch (параметры CompilerParameters, String [] fileNames)
в Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch (параметры CompilerParameters, источники String [])
в Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch (параметры CompilerParameters, источники String [])
в System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource (параметры CompilerParameters, источники String [])
в System.Xml.Serialization.Compiler.Compile (родительский элемент сборки, String ns, XmlSerializerCompilerParameters xmlParameters, Доказательства)
в System.Xml.Serialization.TempAssembly.GenerateAssembly (XmlMapping [] xmlMappings, Тип [] типы, String defaultNamespace, Доказательства, параметры XmlSerializerCompilerParameters, Сборка сборки, сборки Hashtable)
в System.Xml.Serialization.TempAssembly..ctor (XmlMapping [] xmlMappings, Тип [] типы, String defaultNamespace, Расположение строки, Доказательства)
в System.Xml.Serialization.XmlSerializer.GenerateTempAssembly (XmlMapping xmlMapping, Тип типа, String defaultNamespace)
в System.Xml.Serialization.XmlSerializer..ctor (Тип типа, String defaultNamespace)
в Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.SerializeObject (String rootPath, Object objectToSerialize, Boolean saveToCache)
--- Конец трассировки внутреннего стека исключений ---
в Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.SerializeObject (String rootPath, Object objectToSerialize, Boolean saveToCache)
в Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.SetCommonFlag (строковый ключ, логическое значение)
в Microsoft.SqlServer.Chainer.Setup.Setup.InitializeLogProviders (контекст ServiceContainer) в Microsoft.SqlServer.Chainer.Setup.Setup.Run ()
в Microsoft.SqlServer.Chainer.Setup.Setup.Start ()
в Microsoft.SqlServer.Chainer.Setup.Setup.Main ()
Я думаю, что ключевой момент здесь: The environment block used to start a process cannot be longer than 65535 bytes. Your environment block is 162180 bytes long. Remove some environment variables and try again.
Я получаю эту конкретную ошибку в графическом интерфейсе при попытке использования MSSQL2008 Express, поэтому похоже, что это основная причина обеих ошибок.
Ошибка выглядит как 32-битная / 64-битная несовместимость, но код ошибки GUI CLR20r3 подразумевает повреждение .NET framework. Некоторые сообщения в Интернете утверждают, что это могло быть связано с проблемой, когда клонируется встроенная ОС, но это не встроенная ОС. Это мощь быть ОС с корпоративной лицензией, которая была клонирована на ПК, но не встроенной ОС.
Я пробовал переустановить .NET 3.5.1 (через «Добавить / удаленные компоненты и компоненты Windows», поскольку он встроен в Windows 7) и на всякий случай установил .NET 4.5 - оба [пере] устанавливаются нормально.
Дополнительная информация о ПК: - Windows 7 Pro с SP1; - 64-битный; - 8 ГБ оперативной памяти; - Intel Core i5-3550 - удаленное подключение к ПК с помощью LogMeIn (так как это компьютер заказчика).
Любая помощь будет принята с благодарностью.
Я решил это сейчас. Для информации других людей: я попросил клиента запустить установку SQL непосредственно на ПК (а не через сеанс LogMeIn), и это сработало. Похоже, все проблемы были вызваны LogMeIn! Я знал, что Remote Desktop не следует использовать (в соответствии с требованиями Microsoft), но LogMeIn не упоминался. Они должны использовать в системе те же самые перехватчики, которые вызывают несовместимость с установкой.