Tekst na mowę w ASP.NET - odmowa dostępu… co robić?
Na mojej osobistej stronie internetowej chciałbym, żeby coś „wymówiło”
Rozwiązałem problem „koncepcji”, jak wtutaji na moim pulpicie działa płynnie po uruchomieniu z wizualnego programisty. Tworzy plik, a następnie osadzony na nim odtwarzacz zostanie odtworzony. Idealny.
Więc przesłałem go na serwer ... Otrzymuję ten błąd 500:
Błąd serwera w aplikacji „/ sapi”. Odmowa dostępu. (Wyjątek od HRESULT: 0x80070005 (E_ACCESSDENIED)) Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania WWW. Zapoznaj się ze śledzeniem stosu, aby uzyskać więcej informacji o błędzie i miejscu jego powstania.
Szczegóły wyjątku: System.UnauthorizedAccessException: Odmowa dostępu. (Wyjątek od HRESULT: 0x80070005 (E_ACCESSDENIED))
ASP.NET nie jest upoważniony do dostępu do żądanego zasobu. Rozważ przyznanie praw dostępu do zasobu tożsamości tożsamości żądania ASP.NET. ASP.NET ma podstawową tożsamość procesu (zazwyczaj {MACHINE} ASPNET w IIS 5 lub usługę sieciową w IIS 6), która jest używana, jeśli aplikacja nie podszywa się pod użytkownika. Jeśli aplikacja podszywa się pod tożsamość, tożsamością będzie użytkownik anonimowy (zazwyczaj IUSR_MACHINENAME) lub uwierzytelniony użytkownik żądania.
(...)
Błąd źródła:
Zobacz poniżej
Plik źródłowy: c: mathath sapi my.ilex.cs Linia: 21
Ślad stosu:
[UnauthorizedAccessException: Odmowa dostępu. (Wyjątek od HRESULT: 0x80070005 (E_ACCESSDENIED))]
SpeechLib.SpVoiceClass.Speak (String Text, SpeechVoiceSpeakFlags Flags) +0 prova.Button1_Click (Nadawca obiektów, EventArgs e) w c: mathath sapi prov.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
Informacje o wersji: Microsoft .NET Framework wersja: 2.0.50727.3053; ASP.NET Wersja: 2.0.50727.3053
To jest źródło
Błąd źródła:
Linia 19:myfile.Open(@"C:\mypath\sapi\gen\hi.wav",SpeechStreamFileMode.SSFMCreateForWrite,false);
Linia 20:voice.AudioOutputStream = myfile;
Linia 21: voice.Speak("Hi",SpeechVoiceSpeakFlags.SVSFDefault);
Dostaję błąd w linii 21, Voice.speak
Prawdopodobnie oznacza to, że użytkownik aspnet nie ma odpowiednich uprawnień
Folder generowania ma wszystkie odpowiednie uprawnienia: tworzony jest pusty plik.
Muszę więc zezwolić na wykonanie do jakiejś biblioteki systemowej?
Czy wiesz, który dll? To jestnie bin\Interop.SpeechLib.dll
, na tej stronie użytkownik aspnet ma pełną kontrolę
Ps: mam pełną kontrolę nad serwerem (Windows) (mam na myśli, że dostęp przez RDC nie jest hostem współdzielonym)