2

J'ai une application qui utilise Microsoft.Speech pour reconnaître la parole dans un fichier WAV. Il fonctionne parfaitement lorsqu'il est exécuté localement en tant qu'application de console mais barfs lorsqu'il est exécuté par IIS.Exécutez Microsoft.Speech sur IIS?

Supposons que je inclut les composants suivants sur WinServer 2008 avec 3.5+ .NET:

  1. Microsoft Speech Platform - Kit de développement logiciel (SDK) (version 10.1)
  2. Microsoft Speech Platform - Server Runtime Langues (version 10.1)
  3. Microsoft Speech Platform - Kit de développement logiciel (SDK) (version 10,1)

Est-il même possible d'utiliser Microsoft.Speech sur IIS7? Qu'est-ce que j'oublie ici?

J'ai essayé de le recoder en tant que service Web ASP.NET, mais cela ne fonctionne pas non plus.

Suuuuper collé ici. Merci si vous pouvez aider :) Jolie s'il vous plaît :)

MISE À JOUR: Voici le message d'erreur + trace de pile:

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) 
+0

Lorsque vous allez chez un médecin pour un diagnostic .. vous allez lui dire des symptômes. Pourquoi n'écrivez-vous pas erreur/exception que vous voyez? Cela prend-il trop de temps (erreur de timeout)? Où est votre fichier wav (pour le problème d'autorisation de lecture)? – ankitjaininfo

+0

Quelle erreur obtenez-vous? – SLaks

+0

Je vais essayer de mettre à jour avec un message d'erreur sous peu ... Merci! – Aaron

Répondre

0

Tourné dans l'obscurité: il essaie et de ne pas charger des fichiers à partir du disque , à partir d'une zone, l'utilisateur du pool d'applications IIS n'a pas l'autorisation de lire. Essayez d'exécuter sysinternals ProcessMon pour savoir lequel, puis accordez à l'utilisateur du pool d'applications (ou au groupe local IIS_IUSRS si vous n'avez pas modifié l'utilisateur du pool d'applications) des autorisations sur ce répertoire.

+0

Merci pour la suggestion. J'essaie d'utiliser ProcessMon mais il crache autant d'enregistrements et je ne suis pas sûr de savoir pour quoi filtrer. J'ai essayé de filtrer seulement pour les messages d'erreur impliquant ma reconnaissance de la parole. Exe mais ne peut vraiment rien singulariser. Avez-vous des suggestions pour ce que je devrais rechercher? – Aaron

+0

Filtrer sur Résultat est ACCES REFUSE? Je ne suis pas sûr de ce que le processus IIS est sur 2008 désolé. – Rup

+0

D'accord, je vais jeter un coup d'oeil. Merci pour votre aide ... Je vous rapporterai. – Aaron

1

Correction simple: Accordez un accès en lecture/écriture au C:\windows\system32\config\systemprofile\appdata\roaming pour le même utilisateur que le pool d'applications.