Text to Speech in ASP.NET - Zugriff verweigert ... was tun?

Auf meiner persönlichen Website möchte ich dafür sorgen, dass etwas "ausgesprochen" wird

Ich habe das "Konzept" -Problem gelöst, wie inHierund auf meinem Desktop funktioniert es reibungslos, wenn es von Visual Web Developer gestartet wird. Erstellt eine Datei und wird dann von einem eingebetteten Player auf der Seite abgespielt. Perfekt.

Also, ich habe es auf den Server hochgeladen ... Ich erhalte die Fehlermeldung 500:

Serverfehler in der Anwendung '/ sapi'. Der Zugriff wird verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED)) Beschreibung: Während der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Überprüfen Sie die Stapelablaufverfolgung, um weitere Informationen zu dem Fehler und dessen Ursprung im Code zu erhalten.

Ausnahmedetails: System.UnauthorizedAccessException: Zugriff verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED))

ASP.NET ist nicht berechtigt, auf die angeforderte Ressource zuzugreifen. Erwägen Sie, der ASP.NET-Anforderungsidentität Zugriffsrechte auf die Ressource zu gewähren. ASP.NET verfügt über eine Basisprozessidentität (normalerweise {MACHINE} \ ASPNET unter IIS 5 oder Network Service unter IIS 6), die verwendet wird, wenn die Anwendung keine Identität annimmt. Wenn die Anwendung die Identität annimmt, ist die Identität der anonyme Benutzer (normalerweise IUSR_MACHINENAME) oder der authentifizierte Anforderungsbenutzer.

(...)

Quellfehler:

Siehe unten

Quelldatei: c: \ mypath \ sapi \ myfile.aspx.cs Zeile: 21

Stack Trace:

[UnauthorizedAccessException: Zugriff verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED))
SpeechLib.SpVoiceClass.Speak (Zeichenfolgentext, SpeechVoiceSpeakFlags-Flags) +0 prova.Button1_Click (Objektabsender, EventArgs e) in 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

Versionsinformationen: Microsoft .NET Framework Version: 2.0.50727.3053; ASP.NET Version: 2.0.50727.3053

Das ist die Quelle

Quellfehler:

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

Ich erhalte eine Fehlermeldung in Zeile 21, Voice.speak

Das bedeutet wahrscheinlich, dass der Benutzer von aspnet worker nicht über die richtigen Berechtigungen verfügt

Der Generierungsordner verfügt über die richtigen Berechtigungen: Es wird eine leere Datei erstellt.

Also, ich muss die Erlaubnis zum Ausführen einer System-DLL geben?

Weißt du welche DLL? Es istnicht bin\Interop.SpeechLib.dllIn diesem Fall hat der Benutzer von aspnet die volle Kontrolle

Ps: Ich habe die volle Kontrolle über den (Windows-) Server (ich meine, der Zugriff per RDC ist kein Shared Hosting).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage