2012-01-16 1 views
1

дает оценку: InvalidCastExeption заявив:

Невозможно бросить COM объект типа «System .__ ComObject 'для типа интерфейса «SKYPE4COMLib.Skype». Эта операция завершилась неудачно, потому что вызов QueryInterface на COM-компоненте для интерфейса с IID '{B1878BFE-53D3-402E-8C86-190B19AF70D5} завершился неудачно из-за следующей ошибки: такой интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)) ,

, но когда я запускаю ту же строку кода в своем приложении wpf, я не получаю исключение. Зачем!?


Приложение для консолей работает отлично, пока обновление скайпа не будет обновлено. Я удалил skype, установил его снова, чтобы попытаться решить проблему, но это не помогло.

ответ

0

После долгие часы попыток, я решил, где я собираюсь сделать приложение wpf консольным приложением, добавив необходимые ссылки и классы. Затем я сравнил, и я заметил, что если бы я добавил:

[System.STAThreadAttribute()] 

Главным образом он работает !!!!!

в результате мой основной метод должен теперь выглядеть так:

с использованием системы; с использованием System.Collections.Generic; с использованием System.Linq; с использованием System.Text;

namespace ConsoleApplication3 
{ 

    class Program 
    { 
     [System.STAThreadAttribute()]     
     static void Main(string[] args) 
     { 
      SKYPE4COMLib.Skype oSkype = new SKYPE4COMLib.Skype(); 
     } 
    } 
} 

сверху asp.net нет основной способ. ну, я не знаю. поэтому в asp.net мне пришлось добавить атрибут AspCompat равным true.

поэтому мои asp.net ASPX страницы теперь выглядеть следующим образом:

<%@ Page AspCompat="true" Language="C#" .... etc 
7

Не используйте профиль клиента для вас Консольное приложение, установите его в полную версию .Net.

Вы можете изменить его, перейдя в свойствах проекта -> Приложение -> Target Framework (выпадающим) -> Установите его в .Net Framework 4 (если это то, что версия .net вы работаете)

+0

Спасибо, что было впечатляющим. –

+0

Это исправление для моего консольного приложения, но оно не для моего приложения .asp. Я думал, что если он будет работать в моем консольном приложении, он будет работать в моем asp-приложении. 1 час назад он работал хорошо, пока скайп не обновился. –