Pergunta

No meu site pessoal, eu gostaria de torná-lo "pronuncie" algo

Eu resolvi o problema "conceito", como em aqui , e no meu desktop funciona bem quando iniciado a partir de desenvolvedor web visual. Cria um arquivo e, em seguida, um player embutido na página irá jogar. Perfeito.

Então, eu fizer o upload no servidor ... Eu recebo este erro 500:

Erro no servidor '/ sapi' Aplicação. Acesso negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED)) Descrição: Uma exceção sem tratamento ocorreu durante a execução do solicitação da web atual. Por favor, revise o Rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no o código.

Detalhes da exceção: System.UnauthorizedAccessException: Acesso negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED))

ASP.NET não está autorizado a acessar o recurso solicitado. Considerar conceder direitos de acesso ao recurso a identidade de solicitação ASP.NET. ASP.NET tem uma identidade de processo base (Normalmente {MACHINE} \ ASPNET no IIS 5 ou Serviço de Rede no IIS 6), que é usada se o aplicativo não é personificando. Se o pedido for personificando via, a identidade será o usuário anônimo (tipicamente IUSR_MACHINENAME) ou o autenticado solicitação do usuário.

(...)

Fonte de erro:

Veja abaixo

Arquivo de Origem: c: \ mypath \ sapi \ myfile.aspx.cs Linha: 21

Stack Trace:

[UnauthorizedAccessException: acesso é negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED))]
SpeechLib.SpVoiceClass.Speak (String Texto, SpeechVoiceSpeakFlags Flags) 0 prova.Button1_Click (objecto remetente, EventArgs e) em c: \ mypath \ sapi \ prova.aspx.cs: 21 System.Web.UI.WebControls.Button.OnClick (EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler SourceControl, String eventArgument) 13 System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 1565

Informações sobre versão: Microsoft .NET Framework versão: 2.0.50727.3053; ASP.NET versão: 2.0.50727.3053

Esta é a fonte

Fonte de erro:

Linha 19: myfile.Open(@"C:\mypath\sapi\gen\hi.wav",SpeechStreamFileMode.SSFMCreateForWrite,false);
Linha 20: voice.AudioOutputStream = myfile;
Linha 21: voice.Speak("Hi",SpeechVoiceSpeakFlags.SVSFDefault);

Eu recebo erro na linha 21, Voice.speak

Isso provavelmente significa que o usuário trabalhador aspnet tem não alguma permissão direita

A pasta geração tem todas as permissões adequadas:. Um arquivo vazio é criado

Então, eu tenho que dar permissão de executar para alguns dll sistema?

Você sabe que dll? É não bin\Interop.SpeechLib.dll, em um presente que o usuário aspnet tem controle total

Ps: i ter controle total sobre os (Windows) servidor (quer dizer, o acesso por RDC, não é uma hospedagem compartilhada)

Foi útil?

Solução

Eu tenho que trabalhar, definindo o AppPool como trabalhar como "Sistema Local" e definindo no machine.config para trabalhar como conta SYSTEM

É claro que eu sinto isso como um problema de segurança, como eu estou hospedando meu site pessoal no servidor (pequena) empresa (empregados estejam expressamente autorizadas a fazê-lo, o proprietário da empresa)

Talvez esta não é uma boa solução?

eu definir esta definição apenas para este webapp, e eu não sou tão bom em codificação (por isso há muitos bugs no meu código, medidos em 100 WTFs / minuto (haha)

Outras dicas

Eu tive problemas semelhantes, depois de muitas dores de cabeça eu consegui resolver o problema comigo. Eu encontrei dois problemas sendo o primeiro o navegador, que encontrei para o meu propósito ie somente explorador iria trabalhar e não outros navegadores como o Mozilla. O segundo problema foi finalmente as permissões, mesmo que eu tinha todas as permissões corretamente eu descobri que eu tinha que remover a permissão de usuário de internet e verificar o log on como opção de conta local, que então trabalhava.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top