класс не зарегистрирован VFP веб-сервис - PullRequest
0 голосов
/ 27 февраля 2012

Я следую за пошаговым руководством по веб-сервису vfp.Но когда я проверяю результат в панели задач, я получаю сообщение об ошибке.Это было:

Ошибка: 1429 - Код исключения OLE IDispatch 0 из WSDLOperation: WSDLOperation: Создание объекта отправки для метода xxxx не выполнено HRESULT = 0x80040154: Класс не зарегистрирован.

xxxx - мой метод.

Я зарегистрировал dll и установил авторизацию в IIS.

Есть предложения?

1 Ответ

0 голосов
/ 27 февраля 2012

звучит так, как когда модуль VFP был скомпилирован, экземпляр класса «OlePublic» никогда не был должным образом помещен в реестр Windows.Иногда VFP НЕ будет регистрироваться, если вы не на административном уровне, чтобы разрешить запись в реестр.Если это так, убедитесь, что вы запустили VFP как «Администратор», прежде чем компилировать приложение.

Кроме того, вы создаете его как отдельный или многопоточный экземпляр DLL.Кроме того, если вы щелкнете правой кнопкой мыши / «Информация о проекте» своего проекта и нажмете на вкладку «Серверы», он должен показать все ваши классы OlePublic.Что такое параметр «Instancing» ... одиночный / многократный?

Кроме того, это может быть «разрешением».Если служба, которую вы пытаетесь загрузить как (например: учетная запись пользователя ASP.NET или аналогичная) и этот пользователь не имеет разрешений и / или доступа к файлу, то не позволит создать объект.

Чтобы просто ТЕСТИРОВАТЬ, если объект находится в реестре или нет, вы всегда можете просто запустить экземпляр VFP, и из командного окна попытаться выполнить

objTesting = CREATEOBJECT ("YourClass.YourObject ")

если это будет работать таким образом, то я бы больше посмотрел на проспект разрешений.

ПОСЛЕДУЮЩИЙ

@ wongchungyie, я не уверен весли это была проблема или нет, но более вероятно, разрешения.Однажды, когда меняли машины для разработки, у меня тоже была проблема с попыткой создать экземпляр моего класса COM-сервера OlePublic.ЧТОБЫ УБЕДИТЬСЯ в чем проблема, я запустил простую программу в VFP, которая ничего не делала, НО

set procedure to YourClassThatHasOlePublic
set step on
o = createObject( "YourOlePublicClass" )

Затем, когда «CreateObject» проходит через всю инициализацию, вы можете обнаружить, что «путь» недоступны, или разрешения, или что-то еще ... Найдите и исправьте этот элемент, и я смог продолжить работу для моего клиента.

Надеюсь, это даст вам возможность поработать.

...