У меня есть ASP.NET "сайт", который использует 32-битную DLL.Когда я XCOPY к нашему 64-битному серверу, страница, которая использует эту 32-битную DLL, выдает исключение.Я уже установил для параметра «Включить 32-разрядные приложения» значение True для пула приложений, на котором работает сайт, но это не помогает.
Я также пытаюсь установить целевую платформу на x86, ноВ отличие от веб-приложения, веб-сайт не имеет возможности для этого.
Вот трассировка стека -
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 7/13/2010 5:01:12 PM
Event time (UTC): 7/13/2010 9:01:12 PM
Event ID: 9611671ef6b845f39af6b26b89af85e3
Event sequence: 51
Event occurrence: 4
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-129235271319338750
Trust level: Full
Application Virtual Path: /
Application Path: C:\Site\
Machine name: WWWTEST
Process information:
Process ID: 4020
Process name: w3wp.exe
Account name: IIS APPPOOL\WWWTEST AppPool
Exception information:
Exception type: COMException
Exception message: Retrieving the COM class factory for component with CLSID {58968145-CF05-4341-995F-2EE093F6ABA3} failed due to the following error: 80040154.
Request information:
Request URL: http://site/Downloads.aspx
Request path: /Downloads.aspx
User host address: 192.168.1.101
User:
Is authenticated: False
Authentication Type:
Thread account name: WWWTEST\Webtest
Thread information:
Thread ID: 4
Thread account name: WWWTEST\Webtest
Is impersonating: False
Stack trace: at Downloads.Button_Click(Object Sender, DataGridCommandEventArgs E) in C:\Site\Downloads.aspx.vb:line 1034
at System.Web.UI.WebControls.DataGrid.OnItemCommand(DataGridCommandEventArgs e)
at System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Я выполнил онлайн-поиск исключения: «Получение фабрики классов COM для компонента с помощью CLSID {58968145-CF05-4341-995F-2EE093F6ABA3} не удалось из-за следующей ошибки: 80040154. "и включил 32-разрядный режим на IIS7, но все равно не повезло.
Любая помощь очень ценится.
** ОТВЕТ ** Мне удалось решить эту проблему с помощью пользователя Кев .Вот что я сделал -
- Загрузите пример для чтения свойств OLE File Support 2.1 для Microsoft Developer (KB 224351) из здесь
- Извлеките содержимое во временную папку, используяWinZip / 7-zip и т. Д. Не запускайте программу установки.Скопируйте файлы «Interop.DSOFile.dll» и «dsofile.dll» из извлеченного местоположения в каталог bin приложения на Сервере.
- Откройте командную строку с правами администратора и перейдите в каталог bin на сервере
- Введите "regsvr32 dsofile.dll"
- Убедитесь, что для пула приложений установлено значениеВключить 32-битные приложения.
- Перезагрузите IIS
Большое спасибо, Кев.Я действительно ценю это.