Почему происходит сбой управления IIS, когда я выбираю пользователя в диалоговом окне «Настроить публикацию веб-развертывания»?

Я использую IIS 8 и Windows Server 2012. Я установил веб-развертывание, и когда я пытаюсь выбрать пользователя, которому нужно предоставить разрешения на публикацию, я сразу же вылетаю без каких-либо диалоговых окон с ошибками. Когда я захожу в средство просмотра событий, я вижу следующую ошибку:

IISMANAGER_CRASH

IIS Manager terminated unexpectedly.

Exception:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.OverflowException: Arithmetic operation resulted in an overflow.
   at Microsoft.Web.Deployment.UI.ObjectPickerWrapper.ShowObjectPicker(IntPtr parentHandle, Boolean usersOnly)
   at Microsoft.Web.Deployment.UI.SelectExistingUserForm.OnWindowsBrowseButtonClick(Object sender, EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
   at Microsoft.Web.Management.Host.UserInterface.ManagementUIService.ShowDialogInternal(Form form, IWin32Window parent)
   at Microsoft.Web.Management.Host.UserInterface.ManagementUIService.Microsoft.Web.Management.Client.Win32.IManagementUIService.ShowDialog(DialogForm form)
   at Microsoft.Web.Deployment.UI.SetupPublishingDialog.SelectUserButton_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
   at Microsoft.Web.Management.Host.UserInterface.ManagementUIService.ShowDialogInternal(Form form, IWin32Window parent)
   at Microsoft.Web.Management.Host.UserInterface.ManagementUIService.Microsoft.Web.Management.Client.Win32.IManagementUIService.ShowDialog(DialogForm form)
   at Microsoft.Web.Deployment.UI.PackagingModule.SetupPublishing(HierarchyInfo info)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at System.Windows.Forms.ToolStripItemClickedEventHandler.Invoke(Object sender, ToolStripItemClickedEventArgs e)
   at System.Windows.Forms.ToolStripDropDown.OnItemClicked(ToolStripItemClickedEventArgs e)
   at System.Windows.Forms.ToolStrip.HandleItemClick(ToolStripItem dismissingItem)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at Microsoft.Web.Management.Host.Shell.ShellApplication.Execute(Boolean localDevelopmentMode, Boolean resetPreferences, Boolean resetPreferencesNoLaunch)

Process:InetMgr

Я думал, что у Microsoft есть полный процесс устранения таких легко обнаруживаемых ошибок. Что дает?


person ATL_DEV    schedule 19.12.2013    source источник
comment
У меня такая же проблема. Немного помощи ?   -  person DevUser    schedule 20.01.2014
comment
Для этого нет решения. Я где-то читал, что это как-то связано с длиной имени пользователя. Я не могу в это поверить, потому что мои имена пользователей короткие.   -  person ATL_DEV    schedule 22.01.2014
comment
Все еще вижу эту проблему. У меня просто вылетает, когда нажимаю "Выбрать", даже не нужно вводить имя.   -  person RLT    schedule 27.05.2014


Ответы (3)


Я столкнулся именно с этой проблемой при попытке настроить публикацию веб-развертывания; Диспетчер IIS мгновенно аварийно завершал работу при нажатии кнопки Select... при попытке выбрать пользователя для предоставления разрешений на публикацию.

Чтобы обойти это, я вручную ввел имя пользователя в текстовое поле в формате COMPUTERNAME\Username.

введите описание изображения здесь

person NJH    schedule 02.03.2016
comment
У меня точно такая же проблема. - person Kalin Krastev; 06.12.2016
comment
@KalinKrastev, ЛОЛ! Я помню, как был шокирован и зол, когда обнаружил эту ошибку 4 года назад. Я поражен тем, что эта ошибка все еще существует. - person ATL_DEV; 05.10.2018

Для меня

  • добавление необходимого пользователя с графическим интерфейсом «IIS Manager Permissions» для сайта
  • просто выберите их из раскрывающегося списка (вместо выбора эллипса для поиска/выбора пользователя)

Полностью избежал проблемы, и все, кажется, работало нормально

person MemeDeveloper    schedule 18.06.2014
comment
Хороший обходной путь, но, тем не менее, сбой при такой простой операции просто неприемлем даже для программного обеспечения с открытым исходным кодом. - person ATL_DEV; 25.02.2019
comment
@ATL_DEV согласился. Если вы нашли ответ полезным - пожалуйста, проголосуйте. - person MemeDeveloper; 26.02.2019

Это ошибка, которая не была исправлена ​​и, по-видимому, имеет низкий приоритет. Единственное исправление для меня, которое работает, - это использовать учетную запись с правами администратора и игнорировать диалоговое окно. Стандартная учетная запись пользователя может работать, но вы должны выяснить, какие разрешения необходимо применить. Откровенно говоря, схема безопасности Microsoft слишком сложна для настройки, поэтому многие системные администраторы просто отключают ее или предоставляют полные привилегии, чтобы обойти проблемы с отказом в аутентификации. Web Deploy — это большое крысиное гнездо взаимодействующих компонентов, для каждого из которых необходимо тщательно настроить свои разрешения. Если у кого-то есть время, которого у меня не так много, загрузите обозреватель процессов и настройте фильтр, чтобы отслеживать ошибки отказа в доступе и применять соответствующие разрешения к процессу или пользователю.

Программное обеспечение Microsoft всегда было плохим, но с каждым годом становится все хуже. Если бы это была компания, управляемая двумя парнями, работающими в своем подвале, этот и другие баги были бы вполне понятны. Но это многомиллиардная корпорация, и она не может получить базовое программное обеспечение, которое имеет решающее значение для ее собственного выживания.

Microsoft ведет слишком много сражений и все их проигрывает. Он проигрывает на рынке мобильных устройств, на рынке веб-серверов и в конечном итоге потеряет корпоративный рынок и рынок настольных компьютеров, поскольку приложения уходят с настольных компьютеров. Если нет возможности просто развернуть веб-приложения, можно просто забыть о рынке облачных вычислений.

Если вы являетесь разработчиком только Microsoft, вам следует серьезно задуматься о смене карьеры. Не основывайте свои средства к существованию на тонущем корабле.

person Community    schedule 21.01.2014
comment
Можете ли вы предоставить ссылку на то, как вы знаете, что MS знает об этом? Любые другие подробности? Я новичок в развертывании, какие-либо предложения по альтернативным методам развертывания? - person bendecko; 22.01.2014
comment
Смотрите мой пересмотренный ответ. Я нашел тему на каком-то форуме MS, но решение не относилось к нашей конкретной проблеме. - person ATL_DEV; 23.01.2014