文本到语音在ASP.NET - 访问被拒绝......怎么办?(Text to Speech in

2019-06-25 08:16发布

在我的个人网站,我想使其“发音”的东西

我解决了“概念”的问题,因为在这里 ,我的桌面上,从Visual Web Developer中启动时它工作的顺利进行。 创建一个文件,然后在页面中嵌入的播放机可以播放它。 完善。

所以,我上传到服务器上...我得到这个错误500:

在“/ SAPI应用程序的服务器错误。 访问被拒绝。 (从HRESULT异常:0X80070005(E_ACCESSDENIED))说明:在当前web请求的执行过程中发生了未处理的异常。 请检查堆栈跟踪有关该错误它起源于代码的详细信息和。

异常详细信息:System.UnauthorizedAccessException:访问被拒绝。 (从HRESULT异常:0X80070005(E_ACCESSDENIED))

ASP.NET未被授权访问所请求的资源。 考虑授予资源以ASP.NET请求标识访问权限。 ASP.NET具有基部进程标识(通常{MACHINE} \ ASPNET IIS 5上或IIS 6上网络服务),如果应用程序没有模拟时使用。 如果应用程序正在通过冒充,身份将是匿名用户(通常IUSR_MACHINENAME)或经过身份验证的请求用户。

(......)

源错误:

看到它下面

源文件:C:\ mypath中\ SAPI \ myfile.aspx.cs行:21

堆栈跟踪:

[UnauthorizedAccessException:访问被拒绝。 (从HRESULT异常:0X80070005(E_ACCESSDENIED))]
SpeechLib.SpVoiceClass.Speak(字符串文本,SpeechVoiceSpeakFlags标志)0 prova.Button1_Click(对象发件人,EventArgs e)如C:\ mypath中\ SAPI \ prova.aspx.cs:21 System.Web.UI.WebControls.Button.OnClick (EventArgs的)111
System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串eventArgument)+110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串eventArgument)+10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,字符串eventArgument)+13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection中POSTDATA)+36
System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)1565

版本信息:Microsoft .NET Framework版本:2.0.50727.3053; ASP.NET版本:2.0.50727.3053

这是源

源错误:

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

我得到的第21行错误,Voice.speak

这可能意味着,ASPNET工作的用户也没有一些正确的权限

生成文件夹拥有所有正确的权限:创建一个空文件。

所以,我不得不放弃执行某些系统DLL的许可?

你知道哪个DLL? 这不是 bin\Interop.SpeechLib.dll ,就这一个ASPNET用户具有完全控制

PS:我对(窗口)完全控制服务器(我的意思是,通过RDC访问,是不是一个共享的主机)

Answer 1:

我把它通过设置程序池的是“本地系统”进行合作,并在machine.config设置工作作为SYSTEM帐户工作

当然,我觉得,作为一个安全问题,因为我举办我的个人网站(小)企业服务器(雇员明确授权由公司的老板这样做)

也许这不是一个好的解决方案吗?

我设置此设置只对这个web应用程序,和我不是在编码那么好(所以有很多虫子在我的代码,在测量100 WTFs /分钟 (哈哈)



Answer 2:

我有过类似的问题,很多头痛的问题后,我还是设法与我解决问题。 我发现了两个问题,第一个是浏览器,我发现我的目的只有IE浏览器会的工作,而不是其他浏览器如Mozilla。 第二个问题是最终的权限,即使我有所有权限正确地我发现,我不得不删除互联网用户权限和检查日志上的本地帐户选项,然后工作。



文章来源: Text to Speech in ASP.NET - Access is denied… what to do?