Frage

Auf meiner persönlichen Website, würde Ich mag es machen „aussprechen“ etwas

Ich löste das "Konzept" Problem, wie in hier und auf meinem Desktop funktioniert es reibungslos, wenn sie von Visual Web developer gestartet. Erstellt eine Datei, und dann wird ein eingebetteter Player auf der Seite spielt es. Perfect.

Also, ich es auf dem Server hochgeladen ... Ich erhalte diesen Fehler 500:

  

Serverfehler in '/ sapi' Anwendung.   Zugriff wird verweigert. (Ausnahme von   HRESULT: 0x80070005 (E_ACCESSDENIED))   Beschreibung: Eine nicht behandelte Ausnahme   während der Ausführung des aufgetretenen   aktuelle Web-Anfrage. Bitte lesen Sie die   Stack-Trace für weitere Informationen über   der Fehler und wo sie ihren Ursprung in   der Code.

     

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

     

ASP.NET ist nicht zugangsberechtigt   die angeforderte Ressource. Erwägen   Vergabe von Zugriffsrechten auf die Ressource   auf die ASP.NET-Anforderung Identität.   ASP.NET hat eine Basis-Prozessidentität   (Typischerweise {MACHINE} \ ASPNET auf IIS 5   oder Netzwerkdienst auf IIS 6) das ist   wenn die Anwendung nicht verwendet, ist   impersonating. Wenn die Anwendung   Identitätswechsel über die Identität   wird die anonymen Benutzer (typischerweise   IUSR_MACHINENAME) oder die authentifizierte   Anfrage Benutzer.

     

(...)

     

Quellfehler:

     

Sehen Sie es unter

     

Quelldatei:   c: \ mypath \ SAPI \ myfile.aspx.cs   Line: 21

     

Stack-Trace:

     

[UnauthorizedAccessException: Zugriff   ist abgelehnt. (Ausnahme von HRESULT:   0x80070005 (E_ACCESSDENIED))]
  SpeechLib.SpVoiceClass.Speak (String   Text, SpeechVoiceSpeakFlags Flags) +0   prova.Button1_Click (Object sender,   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

Dies 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 bekomme Fehler in Zeile 21, Voice.speak

Das bedeutet wahrscheinlich, dass die aspnet Arbeiter Benutzer haben nicht eine richtige Erlaubnis

Die Erzeugung Ordner haben die richtigen Berechtigungen:. Eine leere Datei erstellt wird,

Also, ich habe die Erlaubnis geben, bis zu einem gewissen System DLL ausführen?

Sie wissen, welche dll? Es ist nicht bin\Interop.SpeechLib.dll, auf diesen einen der aspnet Benutzer hat die volle Kontrolle

Ps: ich habe die volle Kontrolle über das (Windows) Server (ich meine, den Zugang von RDC, ist keine Shared-Hosting)

War es hilfreich?

Lösung

Ich habe es funktioniert, indem die AppPool als Arbeits als „Local System“ Einstellung und in den machine.config Einstellung als Systemkonto zu arbeiten

Natürlich fühle ich mich, dass als Sicherheitsproblem, wie ich auf dem (kleinen) Firmenserver meine persönliche Webseite bin Hosting (Mitarbeiter sind ausdrücklich so von der Firma Inhaber dazu berechtigt)

Vielleicht ist dies keine gute Lösung?

ich diese Einstellung nur gesetzt, für diese Webapp, und ich bin nicht so gut Codierung (so gibt es viele Fehler in meinem Code, gemessen in 100 WTFs / Minute (haha)

Andere Tipps

Ich habe ähnliche Probleme hatte, nach vielen Kopfschmerzen ich mit mir um das Problem zu lösen habe es geschafft. Ich fand zwei Probleme den ersten den Browser zu sein, ich für meinen Zweck fand nur dh Explorer funktionieren würde und nicht anderen Browser wie mozilla. Das zweite Problem war schließlich die Berechtigungen, obwohl ich alle Berechtigungen hatte richtig fand ich, dass ich die Internet-Nutzer die Erlaubnis entfernen musste und überprüfen Sie das Protokoll auf als lokales Konto Option, die dann bearbeitet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top