- Ошибка запуска «BITS — фоновая интеллектуальная служба передачи» Дневник Максим Боголепов
- Ошибка запуска «BITS — фоновая интеллектуальная служба передачи»
- Calling into BITS from .NET and C# using Reference DLLs
- Creating the reference DLLs
- BITS IDL files
- MIDL and TLBIMP utilities
- Example commands for MIDL and TLBIMP
- Adding the reference DLLs to your project
- Modifying IDL files for more complete .NET code
- Simpler ENUM names
- String types in unions
- Unions in structures
- Using BITS from C#
- Recommended using statement
- Quick Sample: download a file
- BITS Versions, Casting and QueryInterface
- Working with BITS Versions 10_1 and 10_2
- Исправить Microsoft.Windows.BITS.dll отсутствует или не найден сообщения об ошибках
- Что такое Microsoft.Windows.BITS.dll?
- Microsoft.Windows.BITS.dll безопасен или это вирус или вредоносная программа?
- Могу ли я удалить или удалить Microsoft.Windows.BITS.dll?
- Распространенные сообщения об ошибках в Microsoft.Windows.BITS.dll
- Как исправить Microsoft.Windows.BITS.dll
- Обновлено апреля 2021 года:
- Запустить SFC
- Обновить драйверы
- Восстановление при загрузке
- Загрузите или переустановите Microsoft.Windows.BITS.dll.
Ошибка запуска «BITS — фоновая интеллектуальная служба передачи» Дневник Максим Боголепов
Ошибка запуска «BITS — фоновая интеллектуальная служба передачи»
Вчера вышла очередная порция обновления для операционных систем от Microsoft. При попытке сегодняшним утром выполнить обновление одного из своих домен-контроллеров под управлением Microsoft Windows Server 2003 R2 Standard Edition Service Pack 2, обнаружил множественные ошибки из-за невозможности запуска службы BITS . Причем сама служба была таинственным образом переименована в: @%SystemRoot%\system32\qmgr.dll,-1000 без описания. Именно так она отображалась в оснастке «Управление службами». |
Служба «BITS – фоновая интеллектуальная служба передачи» необходима для (описание из оснастки «Управление службами»):
Так вот, в локальных системных событиях появились следующие ошибки:
Выглядела она так:
Выглядела она так:
Выглядела она так:
Из-за данных ошибок не стартовали зависящие от BITS службы (такие как Update Services), следовательно, не происходило выполнения обновления системы:
Из-за чего возникла такая ситуация, мне не совсем понятно, т.к. данный сервер используется исключительно по своему прямому назначению, на нем установлен корпоративный антивирус NOD32 и вирусное воздействие практически исключено…
Для исправления этих ошибок необходимо:
1. Удалить из реестра ветку [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS] .
2. Восстановить ее из файла ветки реестра с работающими настройками BITS : Скачать (размер – 4.79 КБ; формат – REG ).
3. Чтобы исключить вероятность вирусного воздействия, скачайте, положите (с обязательным бекапом старых) по пути C:\Windows\System32 и заново зарегистрируйте две библиотеки (внимание: эти две библиотеки вам необходимо взять для СВОИХ операционных систем! Мной же выложены библиотеки для русифицированной Microsoft Windows Server 2003 R2 Standard Edition Service Pack 2). В принципе, можно попробовать просто произвести повторную регистрацию уже существующих библиотек, но мне это не помогло:
— Библиотека qmgr.dll – расширение приложения для фоновой интеллектуальной службы передачи: Скачать (размер – 372 КБ; формат – DLL );
— Библиотека qmgrprxy.dll – расширение приложения для BITS (Background Intelligent Transfer Service) Proxy: Скачать (размер – 19.0 КБ; формат – DLL );
— затем сделайте Пуск -> Выполнить и произведите их регистрацию:
4. Выполните обязательную перезагрузку сервера.
Меня спасло то, что в моей сети существует совершенно аналогичный домен-контроллер с такой-же операционной системой (Microsoft Windows Server 2003 R2 Standard Edition Service Pack 2), из которого я и сделал экспорт необходимой ветки реестра и взял указанные библиотеки. Будьте предельно внимательны, именно для вашей операционной системы выложенные мной файлы могут не подойти!
В сети еще советуют применить накопительное обновление для системы безопасности браузера Internet Explorer (KB2888505) от 12 ноября 2013 года: ссылка. Но мне оно не понадобилось, ошибки больше не появлялись и обновление системы произошло штатно.
_______________
Изначально решение проблемы нашел тут.
Rating: 4.7/5(6 votes cast)
Calling into BITS from .NET and C# using Reference DLLs
One way to call into the BITS COM classes from a .NET program is to create a reference DLL file starting with the BITS IDL (Interface Definition Language) files in the Windows SDK, using the MIDL and TLBIMP tools. The reference DLL is a set of class wrappers for the BITS COM classes; you can then use the wrapper classes directly from .NET.
An alternative to using automatically-created reference DLLs is to use a 3rd party .NET BITS wrapper from GitHub and NuGet. These wrappers often have a more natural .NET programming style but they might lag behind the changes and updates in the BITS interfaces.
Creating the reference DLLs
BITS IDL files
You will start with the set of BITS IDL files. These are files that fully define the BITS COM interface. The files are located in the Windows Kits directory and are named bitsversion.idl (for example, bits10_2.idl) except for the version 1.0 file which is just Bits.idl. As new versions of BITS are created, new BITS IDL files are also created.
You may also want to modify a copy of the SDK BITS IDL files to use BITS features that aren’t automatically converted into .NET equivalents. Possible IDL file changes are discussed later on.
The BITS IDL files include several other IDL files by reference. They also nest, so that if you use one version, it includes all the lower versions.
For each version of BITS that you want to target in your program you will need one reference DLL for that version. For example, if you want to write a program that works on BITS 1.5 and up but has additional features when BITS 10.2 is present, you need to convert both the bits1_5.idl and bits10_2.idl files.
MIDL and TLBIMP utilities
The MIDL (Microsoft Interface Definition Language) utility converts the IDL files that describe the BITS COM interface into a TLB (Type Library) file. The MIDL tool depends on the CL utility (C preprocessor) to correctly read the IDL language file. The CL utility is part of Visual Studio and is installed when you include C/C++ features in the Visual Studio installation.
The MIDL utility will normally create a set of C and H (C language code and C language header) files. You can suppress these extra files by sending the output to the NUL: device. For example, setting the /dlldata NUL: switch will suppress creating a dlldata.c file. The sample commands below shows which switches should be set to NUL:.
The TLBIMP (Type Library Importer) utility reads in a TLB file and creates the corresponding reference DLL file.
Example commands for MIDL and TLBIMP
This is an example of the complete set of commands to generate a set of reference files. You may need to modify the commands based on your Visual Studio and Windows SDK installation and based on the BITS features and OS versions you are targeting.
The example creates a directory to place the reference DLL files and creates an environment variable BITSTEMP to point to that directory.
The example commands then run the vsdevcmd.bat file that’s created by the Visual Studio installer. This BAT file will set up your paths and some environment variables so that the MIDL and TLBIMP commands will run. It also sets up the WindowsSdkDir and WindowsSDKLibVersion variables to point to the most recent Windows SDK directories.
Once these commands are run you will have a set of reference DLLs in the BITSTEMP directory.
Adding the reference DLLs to your project
To use a reference DLL in a C# project, open your C# project in Visual Studio. In the Solution Explorer, right-click the References and click Add Reference. Then click the Browse button and then the Add button. Navigate to the directory with the reference DLLs, select them, and click Add. In the Reference Manager window the reference DLLs will be checked. Then click OK.
The BITS reference DLLs are now added to your project.
The information in the reference DLL files will be embedded into your final program. You do not have to ship the reference DLL files with your program; you just need to ship the .EXE.
You can change whether the reference DLLs are embedded into the final EXE. Use the Embed Interop Types property to set whether or not the reference DLLs will be embedded. This can be done on a per-reference basis. The default is True to embed the DLLs.
Modifying IDL files for more complete .NET code
The BITS IDL (Microsoft Interface Definition Language) files can be used unchanged to make the BackgroundCopyManager DLL file. However, the resulting .NET reference DLL will be missing some untranslatable unions and has hard-to-use names for some structures and enums. This section will describe some of the changes that you can make to make the .NET DLL more complete and easier to use.
Simpler ENUM names
The BITS IDL files typically define enum values like this:
The BG_AUTH_TARGET is the name of the typedef; the actual enum is not named. This doesn’t typically cause problems with C code but doesn’t translate well for use with a .NET program. A new name will be automatically created, but it might look something like _MIDL___MIDL_itf_bits4_0_0005_0001_0001 instead of a human-readable value. You can fix this problem by updating the MIDL files to include an enum name.
The enum name is allowed to be the same as the typedef name. Some programmers have a naming convention where they are kept different (for example, by putting an underscore before the enum name), but this will only confuse the .NET translations.
String types in unions
The BITS IDL files pass strings using the LPWSTR (long pointer to wide-character string) convention. Although this works when passing function parameters (like the Job.GetDisplayName([out] LPWSTR *pVal) method), it doesn’t work when the strings are part of unions. For example, the bits5_0.idl file includes the BITS_FILE_PROPERTY_VALUE union:
The LPWSTR field won’t be included in the .NET version of the union. To fix this, change the LPWSTR to a WCHAR*. The resulting field (called String) will be passed as a IntPtr. Convert this into a string using the System.Runtime.InteropServices.Marshal.PtrToStringAuto(value.String); method.
Unions in structures
Sometimes unions that are embedded in structures won’t be included in the structure at all. For example, in the Bits1_5.idl the BG_AUTH_CREDENTIALS is defined as follows:
The BG_AUTH_CREDENTIALS_UNION is defined to be a union as follows:
The Credentials field in the BG_AUTH_CREDENTIALS will not be included in the .NET class definition.
Note that the union is defined to always be a BG_BASIC_CREDENTIALS regardless of the BG_AUTH_SCHEME. Because the union isn’t used as a union, we can just pass a BG_BASIC_CREDENTIALS like this:
Using BITS from C#
Recommended using statement
Setting up some using statements in C# will reduce the number of characters you need to type to use the different BITS versions. The name «BITSReference» comes from the name of the reference DLL.
Quick Sample: download a file
A short but complete snippet of C# code to download a file from a URL is given below.
In this sample code, a BITS manager named mgr is created. It directly corresponds to the IBackgroundCopyManager interface.
From the manager a new job is created. The job is an out parameter on the CreateJob method. Also passed in is the job name (which doesn’t have to be unique) and the download type, which is a download job. A BITS GUID for the job identifier is also filled in.
Once the job is created you add a new download file to the job with the AddFile method. You need to pass in two strings, one for the remote file (the URL or file share) and one for the local file.
After adding the file, call Resume on the job to start it. Then the code waits until the job is in a final state (ERROR or TRANSFERRED) and is then completed.
BITS Versions, Casting and QueryInterface
You’ll find that you often have to use both an early version of a BITS object and a more recent version in your program.
For example, when you make a job object, you will get an IBackgroundCopyJob (part of BITS version 1.0) even when you’re making it using a more recent manager object and a more recent IBackgroundCopyJob object is available. Because the CreateJob method doesn’t accept an interface for the more recent version, you can’t directly make the more recent version.
Use a .NET cast to convert from an older type object to a newer type object. The cast will automatically call a COM QueryInterface as appropriate.
In this example, there’s a BITS IBackgroundCopyJob object named «job», and we want to convert it to an IBackgroundCopyJob5 object named «job5» so that we can call the BITS 5.0 GetProperty method. We just cast to the IBackgroundCopyJob5 type like this:
The job5 variable will be initialized by .NET by using the correct QueryInterface.
If your code might run on a system that doesn’t support a particular version of BITS, you can try the cast and catch the System.InvalidCastException.
A common problem is when you try to cast into the wrong kind of object. The .NET system doesn’t know about the real relationship between the BITS interfaces. If you ask for the wrong kind of interface, .NET will try to make it for you and will fail with an InvalidCastException and HResult 0x80004002 (E_NOINTERFACE).
Working with BITS Versions 10_1 and 10_2
On some versions of Windows 10 you can’t directly create a BITS IBackgroundCopyManager object using the 10.1 or 10.2 interfaces. Instead, you’ll have to use multiple versions of the BackgroundCopyManager DLL reference files. For example, you can use the 1.5 version to make an IBackgroundCopyManager object, and then cast the resulting job or file objects using the 10.1 or 10.2 versions.
Исправить Microsoft.Windows.BITS.dll отсутствует или не найден сообщения об ошибках
Что такое Microsoft.Windows.BITS.dll?
Microsoft.Windows.BITS.dll это файл библиотеки динамических ссылок, который является частью MSDN диск 4617.02 разработанный Microsoft, Версия программного обеспечения для Windows: 1.0.0.0 обычно 131072 по размеру, но версия у вас может отличаться. Файлы DLL — это формат файлов для динамических библиотек, который используется для хранения нескольких кодов и процедур для программ Windows. Файлы DLL были созданы, чтобы позволить нескольким программам использовать их информацию одновременно, тем самым сохраняя память. Это также позволяет пользователю изменять кодировку нескольких приложений одновременно, не изменяя сами приложения. Библиотеки DLL могут быть преобразованы в статические библиотеки с помощью дизассемблирования MSIL или DLL в Lib 3.00. Формат файла .exe файлов аналогичен формату DLL. Файлы DLL, и оба типа файлов содержат код, данные и ресурсы.
Самые важные факты о Microsoft.Windows.BITS.dll:
- Имя: Microsoft.Windows.BITS.dll
- Программного обеспечения: MSDN диск 4617.02
- Издатель: Microsoft
- SHA1: D9A69EB1B4A12848F29A9818A4733BABFA95B0B4
- SHA256:
- MD5: 698E73C13C79DF272A23DD99CDFD20DF
- Известно, что до 131072 по размеру на большинстве окон;
Microsoft.Windows.BITS.dll безопасен или это вирус или вредоносная программа?
Ответ — нет, сам по себе Microsoft.Windows.BITS.dll не должен повредить ваш компьютер.
В отличие от исполняемых программ, таких как программы с расширением EXE, файлы DLL не могут быть выполнены напрямую, но должны вызываться другим кодом, который уже выполнен. Тем не менее, DLL имеют тот же формат, что и EXE, и некоторые могут даже использовать расширение .EXE. В то время как большинство динамических библиотек заканчиваются расширением .DLL, другие могут использовать .OCX, .CPL или .DRV.
Файлы DLL полезны, потому что они позволяют программе разделять свои различные компоненты на отдельные модули, которые затем могут быть добавлены или удалены для включения или исключения определенных функций. Если программное обеспечение работает таким образом с библиотеками DLL, программа может использовать меньше памяти, поскольку ей не нужно загружать все одновременно.
С другой стороны, если файл .dll прикреплен к исполняемому файлу, который предназначен для повреждения вашего компьютера, возможно, это опасно. Мы рекомендуем вам запустить сканирование вашей системы с инструмент, подобный этому это может помочь выявить любые проблемы, которые могут существовать.
Вот почему обычно, когда вы видите новый файл .dll на вашем компьютере, где-то будет файл .exe.
Убедитесь, что вы сканируете оба вместе, чтобы вам не пришлось беспокоиться о заражении вашего компьютера чем-то плохим.
Могу ли я удалить или удалить Microsoft.Windows.BITS.dll?
Программные программы хранят файлы DLL в одной или нескольких папках во время установки. Эти файлы содержат код, который объясняет работу программ.
Если вы планируете удалить Microsoft.Windows.BITS.dll, вероятно, лучше оставить его в покое. Причина такой логики в том, что некоторые программы совместно используют эти файлы, поэтому удаление определенного файла DLL может непреднамеренно вызвать проблемы. Это означает, что удаление Microsoft.Windows.BITS.dll может привести к прекращению работы одной или нескольких других программ или только в ограниченной степени.
Некоторые программы также могут устанавливать файлы DLL в несколько папок вне папки Program Files (где установлено большинство программ). Поиск этих DLL-файлов может быть очень трудным, а удаление их может быть опасным.
Как упоминалось выше, если вы не уверены, что Microsoft.Windows.BITS.dll используется другой программой, мы рекомендуем оставить его в покое. Однако, если вам нужно удалить файл, мы рекомендуем сначала сделать копию. Если после этого у вас возникнут проблемы с другой программой, требующей использования недавно удаленного файла DLL, вы можете восстановить файл из резервной копии.
Распространенные сообщения об ошибках в Microsoft.Windows.BITS.dll
Как вы можете себе представить, некоторые DLL появляются чаще в сообщениях об ошибках, чем другие. Вот некоторые из DLL, которые, как известно, вызывают проблемы.
- Не удалось запустить приложение, потому что не найден Microsoft.Windows.BITS.dll. Переустановка приложения может решить проблему.
- Microsoft.Windows.BITS.dll не найден
- Microsoft.Windows.BITS.dll отсутствует
- Требуемая DLL Microsoft.Windows.BITS.dll не найдена
- Приложение или Microsoft.Windows.BITS.dll не является допустимым образом Windows.
- Microsoft.Windows.BITS.dll отсутствует или поврежден.
- Не удается найти Microsoft.Windows.BITS.dll
- Не удается запустить диск MSDN 4617.02. Отсутствует необходимый компонент: Microsoft.Windows.BITS.dll. Пожалуйста, снова установите диск MSDN 4617.02.
Как исправить Microsoft.Windows.BITS.dll
Обновлено апреля 2021 года:
Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:
- Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
- Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
- Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Политика конфиденциальности | Удалить)
Если файл Microsoft.Windows.BITS.dll отсутствует или поврежден, он может повлиять на многие приложения, включая операционную систему, что может помешать вам выполнять свою работу или использовать важные функции в критически важном программном обеспечении.
Запустить SFC
Самый безопасный способ восстановить отсутствующий или поврежденный файл Microsoft.Windows.BITS.dll, вызванный вашей операционной системой Windows, — запустить встроенную программу проверки системных файлов, которая заменяет отсутствующие или поврежденные системные файлы.
Для этого щелкните правой кнопкой мыши кнопку «Пуск» на компьютере Windows 10, чтобы открыть меню WinX, и щелкните ссылку «Командная строка (администратор)».
В окне CMD скопируйте следующую команду и нажмите Enter:
Сканирование может занять 10 минут, и если оно успешно завершено, вы должны перезагрузить компьютер. Запуск sfc / scannow в безопасном режиме или при запуске может дать лучшие результаты.
Обновить драйверы
Иногда при использовании оборудования, например принтера, вы получаете ошибку файла Microsoft.Windows.BITS.dll. Эта ошибка может быть связана с более старой версией драйвера, несовместимой с обновленным файлом .dll, поэтому принтер ищет неправильный файл .dll и не может его найти.
Обновите драйверы вашего устройства, чтобы увидеть, решит ли это проблему.
Восстановление при загрузке
Восстановление при загрузке — это еще один способ восстановить все файлы .dll, такие как Microsoft.Windows.BITS.dll, в их исходное рабочее состояние. Однако это исправление может вызвать проблемы в других программах, особенно если программа обновила файлы DLL.
Загрузите или переустановите Microsoft.Windows.BITS.dll.
В большинстве учебных пособий и руководств авторы предупреждают своих читателей не загружать отсутствующие файлы Microsoft.Windows.BITS.dll со случайных и непригодных для использования веб-сайтов, которые могут предоставить им вредоносное ПО. Это, конечно, неспроста. Правда в том, что в Интернете полно веб-сайтов, которые обещают пользователям решить свои проблемы, открыв определенные приложения или программы как можно скорее. К сожалению, очень немногие действительно могут оправдать ваши ожидания.
Хотя эта проблема встречается реже, потенциально гораздо более серьезная проблема заключается в том, что библиотеки DLL, которые вы загружаете из источников, отличных от поставщика, иногда могут быть загружены вирусами или другими вредоносными программами, которые могут заразить ваш компьютер. Это особенно верно для веб-сайтов, которые не слишком заботятся о том, откуда берутся их файлы. И это не так, как будто эти сайты сделают что-нибудь, чтобы рассказать вам о своих источниках высокого риска.