在IIS上运行Microsoft.Speech?

时间:2010-08-02 06:01:17

标签: asp.net vb.net windows-server-2008 speech-recognition speech

我有一个使用Microsoft.Speech识别WAV文件中的语音的应用程序。它在本地作为控制台应用程序运行时非常有效,但在IIS执行时可以使用barfs。

假设我在使用.NET 3.5 +的WinServer 2008上安装了以下内容:

  1. Microsoft语音平台 - 软件开发工具包(SDK)(版本10.1)
  2. Microsoft语音平台 - 服务器运行时语言(版本10.1)
  3. Microsoft语音平台 - 软件开发工具包(SDK)(版本10.1)
  4. 甚至可以在IIS7上使用Microsoft.Speech吗?我在这里缺少什么?

    我已经尝试将其重新编码为ASP.NET Web服务,但这也不起作用。

    Suuuuper卡在这里。谢谢你,如果你可以帮助:)非常好请:))

    更新 这是错误消息+堆栈跟踪:

    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 个答案:

答案 0 :(得分:1)

简单修复:为运行应用程序池的同一用户授予对C:\windows\system32\config\systemprofile\appdata\roaming的读/写访问权限。

答案 1 :(得分:0)

在黑暗中拍摄:它正在尝试并且无法从磁盘中加载某些文件,而是IIS应用程序池用户无权读取的区域。

尝试运行sysinternals ProcessMon以找出哪个,然后将应用池用户(或本地组IIS_IUSRS,如果您尚未更改应用池用户)授予该目录。