DCOM: CoCreateInstanceEx возвращает E_ACCESSDENIED

После того, как мой код решил мой вопрос:

override func drawRect(rect: CGRect) {
    super.drawRect(rect)

    let  context  = UIGraphicsGetCurrentContext()

    // Flip the coordinate system
    CGContextSetTextMatrix(context, CGAffineTransformIdentity);
    CGContextTranslateCTM(context, 0, self.bounds.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);

    let path = CGPathCreateMutable()
    CGPathAddRect(path, nil, self.bounds)

    let str = NSMutableAttributedString(string: "some text goes here...")

    // set font color
    str.addAttribute(kCTForegroundColorAttributeName as String, value:UIColor.blackColor() , range: NSMakeRange(0,str.length))
    // set font name & size
    let fontRef = UIFont.systemFontOfSize(20, weight: UIFontWeightMedium)
    str.addAttribute(kCTFontAttributeName as String, value: fontRef, range:NSMakeRange(0, str.length))

    let frameSetter = CTFramesetterCreateWithAttributedString(str)
    let ctFrame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0,str.length), path, nil)

    CTFrameDraw(ctFrame, context!)
}
5
задан prakash 25 August 2008 в 20:06
поделиться

5 ответов

Право, поэтому если Ваш Уровень аутентификации установлен на Значение по умолчанию. На что установлен уровень аутентификации в Настройках по умолчанию? Только из интереса. (хотя то, что это работает к полю 2000 года, вероятно, сокращает это),

Править:

Также: Я, кажется, не забываю делать большую перезагрузку, когда я раньше играл/работал с DCOM поэтому, возможно, быструю перезагрузку обеих машин, когда Вы довольны dcomcnfg настройками, не пошел бы amis также.

2
ответ дан 14 December 2019 в 19:31
поделиться

Какова разновидность Вашего поля Windows 2000, btw? Профессионал, Сервер, Рекламный Сервер...

Кроме того, есть ли различие между доменным членством между двумя (один на домене, другой не, различных доменах, и т.д....?)

Еще одна вещь - ошибки DCOM будут время от времени появляться в журнале Системного события - специально для создания объекта - Вы проверяли там на подсказки?

0
ответ дан 14 December 2019 в 19:31
поделиться

Три вещи проверить:

1) Вернитесь к dcomcnfg и сделайте попытку, удостоверившись, что не только безопасность доступа, но также и "раздел" полномочий запуска содержат соответствующих пользователей безопасности или группы.

2) Удостоверьтесь, что Уровень аутентификации установлен на что-то еще ни кроме "Одного"

3) Также проверьте, что местоположение на диске, что компонент расположен, на самом деле доступно для учетной записи, настроенной в правах доступа, которые Вы устанавливаете.

Править:

Еще один: Вы называете CoInitialiseSecurity () сначала также? Это звонит в звонок!

EDIT2:

На основе Вашего обновления: Попытайтесь отбросить брандмауэры полностью и на машинах XP и посмотрите, имеет ли это значение. Вы, возможно, должны пропустить DCOM явно.

1
ответ дан 14 December 2019 в 19:31
поделиться

Мы уже много лет с большим успехом используем Visual WebGui. Нашим приложениям требуется кодирование ZERO DHTML/JavaScript/AJAX/JSON/CSS. Серьезно. Для веб-бизнес- прикладной .NET - Visual WebGui идеально подходит. Я настоятельно рекомендую Gizmox для вашей следующей веб-платформы.

ASP.NET

ASP.NET - платформа разработки без состояния. Текущее представление каждого пользователя остается на клиенте - ViewState. ViewState должен быть послан на сервер ASP.NET для каждого запроса Это делает обходы сервера тяжелыми, даже в сценариях AJAX. В ASP.NET сервер генерирует DHTML/JavaScript/CSS и отправляет его в браузер. Это увеличивает вес каждого ASP.NET вызова AJAX.

Кроме того, сантехника, необходимая для подключения реального приложения ASP.NET, в комплекте с вызовами JSON/AJAX/REST, кросс-браузерным JavaScript, управлением DOM, & CSS и т.д., является трудным и кошмаром технического обслуживания.

Visual WebGui - с учетом состояния

Visual WebGui - это действительно революция. Visual WebGui - это платформа для разработчиков, построенная поверх ASP.NET. Все состояние пользователя сохраняется на сервере. Сервер точно знает, как выглядит экран пользователя. Таким образом, конвейер становится ОЧЕНЬ тонким и ОЧЕНЬ быстрым между клиентом и сервером. Поскольку сервер знает о текущем состоянии клиента, сервер VWG может выполнять процедуры Diff, то по проводу передаются только изменения пользовательского интерфейса.

Чертеж трубопровода и экрана

Кроме того, клиент VWG рисует свой собственный вид. Другими словами, сервер не отправляет DHTML/JavaScript/CSS... вместо этого Клиент генерирует его «на лету» на основе команд, отправленных с сервера. Например, чтобы создать новую кнопку с идентификатором элемента управления 1 - сервер просто сообщает клиенту нарисовать «». Клиент VWG умеет рисовать собственные элементы управления. С этой технологией - это в буквальном смысле как тонкий трубопровод.

Безопасность

Для обеспечения безопасности Visual WebGui может работать по протоколу SSL. Gizmox также использует запатентованный алгоритм обфускации для предотвращения несанкционированного доступа сценариев к вызовам Visual WebGui JavaScript и элементам DOM. Он работает очень хорошо.

Дизайн приложения

Visual WebGui поставляется в комплекте с удивительным дизайнером форм. По образцу WinForms Designer и API - написание веб-приложений Visual WebGui теперь очень просто в разработке. Перетащите, измените размер, переместите все элементы управления на странице «Формы и элементы управления» в комплекте с привязкой данных.

Двусторонняя привязка данных

С Visual WebGui полностью поддерживает двустороннюю привязку данных с INotifyPropertyChanged - так же, как и WinForms. Данные элементов управления привязываются к объектам данных (которые находятся на сервере) и в любое время меняются - элементы управления мгновенно обновляются. Нет необходимости в ASP.NET StartPanels и т.д. Ты даже не думаешь об этом. Просто напишите свое приложение и все, что нужно обновить на экране - будет обновлено.

Одноязычный подход - отладка и управляемость приложениями

Одним из основных преимуществ Visual WebGui является его одноязычный подход.Вы пишете и отладите ВЕСЬ свой код в C #/VB.NET. Больше не взламывать JavaScript/JSON/AJAX звонит и обслуживает веб-сервисы. Больше нет отладчиков на стороне клиента/Firebug и т.д. Не нужно знать 5 различных веб-языков, чтобы написать одно приложение.

Представьте себе - пишите свое приложение на одном языке. Сосредоточение своего времени на удовлетворении бизнес-потребностей, а не на программных препятствиях и сантехнике. Наем и поиск квалифицированных разработчиков также становится намного проще.

Visual WebGui мгновенно делает это реальностью. Пишите бизнес-веб-приложения, такие как бизнес-приложение для настольных ПК.

Краткое описание

Это действительно революция в разработке корпоративных бизнес- приложений .NET.

Я надеюсь, что это поможет объяснить, почему Visual WebGui стоит всерьез заняться поиском следующего корпоративного приложения на базе Интернета.

Искренне,

Райан Д. Хэтч, MVP для клиентов и Visual WebGui

-121--4693172-

Просто получите объединенный экземпляр родителя:

parent = entityManager.merge(parent);

Обновление:

Невозможно. Либо вручную объединить () дочерний объект, а затем добавить его в родительский объект, либо получить новый дочерний экземпляр из родительской коллекции и использовать его вместо этого.

-121--4067244-

У меня была точно такая же проблема. Проблема возникает на компьютерах с операционной системой XP SP2 + или более поздней.

Я решил его, выполнив следующие действия:

  1. Убедитесь, что клиентские и серверные компьютеры находятся в одном домене.

  2. Вы должны использовать одного и того же пользователя на обоих компьютерах, или, если вы хотите использовать разных пользователей на клиенте и сервере, вы должны убедиться, что оба пользователя имеют привилегии на обоих компьютерах (в частности - убедитесь, что они являются членами группы пользователей распределенного COM.

  3. откройте MMC служб Componenet (запустите dcomcnfg).

  4. Пойти в Мой Компьютер-> Свойства-> Default Properties и удостовериться, что Default Уровень Impersenation «Определить»

  5. Перейдите на вкладку «Безопасность COM», в разделе Разрешения доступа и Разрешения на запуск и активацию перейдите в раздел Изменить ограничения и добавьте разрешения локального и удаленного доступа к пользователям клиента и сервера приложения COM

  6. Убедитесь, что в порту 135 для приложения имеется исключение брандмауэра...

Надеюсь, вам это поможет!

0
ответ дан 14 December 2019 в 19:31
поделиться

Если оба ПК не являются членами одного домена, вам также необходимо дать запуск & разрешения доступа к «АНОНИМНОМУ ВХОДУ». «Все» это не включает.

2
ответ дан 14 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: