2015-06-13 10 views
7

.Net 4.5, MVC 5 IIS 8SdkUtility.LaunchSignInPage nie przekierowanie do ebay znak w stronę

SdkUtility.LaunchSignInPage(apiContext, _sessionID); 

Z mojego wniosku (w VS 2013) można łatwo uzyskać dostęp do strony logowania. Ale problem występuje, gdy opublikowałem go w IIS. po pierwsze pokazuje błąd, jak odmowa dostępu.

Szukałem w IIS, basen ApplicationIdentity dałem NETWORK_SERVICE i dał usługa sieciowa pełną autoryzację do odczytu lub odczytu & wykonać ...

błąd nie pojawi się już więcej. ale strona logowania się nie pojawia.

** EDIT 1: **

Korzystanie ASP.NET MVC 5 IIS 8.0.0.9, eBaySdk

Chociaż staram się uzyskać poprzez wywołanie SDK żeton, ten błąd występuje. Oczywiście po przyjęciu. ale w visual studio działa dobrze. Myślę, że muszę ustawić pewien poziom uprawnień, aby umożliwić użytkownikom korzystanie z sdk lub coś w tym stylu. Oto pełny opis błędu.

Odmowa dostępu

Opis:

An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

wyjątków szczegóły:

System.ComponentModel.Win32Exception: Access is denied

Błąd Źródło:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

stosu Ślad:

[Win32Exception (0x80004005): Access is denied] System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) +773 System.Diagnostics.Process.Start() +123 System.Diagnostics.Process.Start(ProcessStartInfo startInfo) +49 System.Diagnostics.Process.Start(String fileName) +31 eBay.Service.Util.SdkUtility.LaunchSignInPage(ApiContext Context, String SessionID) +671 VialinkerApps.App_Start.eBayApi.GetToken(UrlHelper url) +523 VialinkerApps.Controllers.SettingsController.AcceBay(eBaySetting eBaySetting) +16 lambda_method(Closure , ControllerBase , Object[]) +104 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters) +156 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) +27 System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22 System.Web.Mvc.Async.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3d() +50 System.Web.Mvc.Async.<>c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.<>c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.<>c__DisplayClass33.b__32(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 System.Web.Mvc.Async.<>c__DisplayClass2b.b__1c() +26 System.Web.Mvc.Async.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) +100 System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +36 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +54 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult, Controller controller) +12 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +28 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +54 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +36 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +54 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31

System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 

result) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9651796 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

+0

Czy możesz podać nam dodatkowe informacje? Co się pojawia? Powstały kod DOM? Wszelkie wyjątki? –

+0

@abdur Rahim Czy możesz podać więcej kodów i zrzutów ekranu błędu –

+0

@ D.R. Oto wyjątek śledzenia z IIS –

Odpowiedz

0

Z tego, co mogę zrozumieć czytając ślad stosu widać że próbuje zrobić System.Diagnostics.Process.Start. Wydaje mi się to dość dziwne, gdy próbuję "przekierować" na serwer WWW (IIS).

I powinien dawać ci błędy, ponieważ dosłownie próbujesz uruchomić plik wykonywalny w procesie IIS.

To zachowanie wydaje się bardziej prawdopodobne, jeśli uruchomisz go w aplikacji komputerowej, aby "uruchomić" domyślną przeglądarkę z adresem URL.

Wyjaśniliby również, dlaczego wydaje się działać lokalnie w Visual Studio.

Sprawdziłbym wszelką dokumentację, jeśli jest ona przeznaczona do użycia z aplikacji IIS/ASP.NET.

+0

Nie miałem tutaj żadnego powodu. czy możesz rozwinąć proszę? –

+0

Funkcja LaunchSignInPage wydaje się nie być przeznaczona do użycia w aplikacji MVC/ASP.NET, jeśli wywołuje Process.Start. Bardziej prawdopodobne jest to, że można zastosować Oauth w aplikacji Desktop. – Tapadak

+0

http://developer.ebay.com/devzone/guides/ebayfeatures/Basics/Tokens-MultipleUsers.html _____ w tym linku opisują, jak utworzyć znak w adresie URL i przekierować do niego, a po zaakceptowaniu formularza zgody przekierować do mojej aplikacji. Próbowałem już wcześniej, ale po zaakceptowaniu formularza zgody, gdy serwis eBay zwraca użytkownika do mojej aplikacji, poprzedni identyfikator apikontekstu i sesji zniknął. które muszę pobrać token. Inną kwestią jest, że z powodzeniem używam tej metody LaunchSignIn z VS jako aplikacji internetowej MVC. –