Запустить Microsoft.Speech через IIS? - PullRequest
2 голосов
/ 02 августа 2010

У меня есть приложение, которое использует Microsoft.Speech для распознавания речи в WAV-файле. Он отлично работает при локальном запуске в качестве консольного приложения, но barfs при выполнении IIS.

Предполагается, что на WinServer 2008 с .NET 3.5 + установлено следующее:

  1. Microsoft Speech Platform - комплект разработки программного обеспечения (SDK) (версия 10.1)
  2. Microsoft Speech Platform - Языки исполнения сервера (Версия 10.1)
  3. Microsoft Speech Platform - комплект разработки программного обеспечения (SDK) (версия 10.1)

Можно ли использовать Microsoft.Speech поверх IIS7? Что мне здесь не хватает?

Я пытался перекодировать его как веб-сервис ASP.NET, но это тоже не работает.

Суууупер застрял здесь. Спасибо, если вы можете помочь :) Довольно пожалуйста:)

UPDATE: Вот сообщение об ошибке + трассировка стека:

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) at Microsoft.Speech.Internal.SapiInterop.ISpRecognizer.CreateRecoContext(ISpRecoContext& ppNewCtxt) 
at Microsoft.Speech.Internal.SapiInterop.SapiRecognizer.<>c__DisplayClass17.b__16() 
at Microsoft.Speech.Internal.SapiInterop.SapiProxy.PassThrough.Invoke(ObjectDelegate pfn) 
at Microsoft.Speech.Internal.SapiInterop.SapiRecognizer.CreateRecoContext() 
at Microsoft.Speech.Recognition.RecognizerBase.Initialize(SapiRecognizer recognizer, Boolean inproc) 
at Microsoft.Speech.Recognition.SpeechRecognitionEngine.get_RecoBase() 
at Microsoft.Speech.Recognition.SpeechRecognitionEngine.Initialize(RecognizerInfo recognizerInfo) 
at Microsoft.Speech.Recognition.SpeechRecognitionEngine..ctor() 
at myRecognize.Recognize..cctor() The type initializer for 'myRecognize.Recognize' threw an exception. myRecognize 
at myRecognize.Recognize.get_Reco() 
at myRecognize.Recognize.Listen(String wavLoc, String grammars) 

Ответы [ 2 ]

1 голос
/ 20 февраля 2014

Простое исправление: предоставьте доступ на чтение / запись к C:\windows\system32\config\systemprofile\appdata\roaming тому же пользователю, под которым работает пул приложений.

0 голосов
/ 02 августа 2010

Снимок в темноте: он пытается и не может загрузить некоторые файлы с диска из области, в которой у пользователя пула приложений IIS нет прав на чтение.

Попробуйте запустить sysinternals ProcessMon , чтобы узнать, какие, а затем предоставить пользователю пула приложений (или локальной группе IIS_IUSRS, если вы не изменили пользователя пула приложений) разрешения для этого каталога.

...