DotNetOpenAuth...CreatRequest ломается на сервере (Работает на моей машине;-)

Я создал сайт на основе веб-приложения ASP.NET MVC 4. Я включил провайдеров входа в OpenAuth для Twitter, Facebook и Google, следуя инструкциям в AuthConfig.cs.

Это прекрасно работает, когда сайт отлажен на моем локальном компьютере из Visual Studio на IIS Express. Однако, когда я копирую сайт на другой компьютер, весь сайт работает нормально, кроме всего, что использует open auth.

На этой машине я могу получить доступ к Twitter, Facebook и Google, используя браузер.

Когда я пытаюсь войти в систему, используя мой сайт, я получаю: для Google: "Последовательность не содержит элементов" с трассировкой стека, указывающей на

[InvalidOperationException: последовательность не содержит элементов] System.Linq.Enumerable.First(источник IEnumerable`1) +514 DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(Идентификатор userSuppliedIdentifier, область царства, возвращаемая UUI)

[ProtocolException: Не найдена конечная точка OpenID.] DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.CreateRequest(Идентификатор userSuppliedIdentifier, область царства, Uri returnToUrl) +303 DotNetOpenAuth.AspNet.Client.OutNet.OpenEUI ТП AspNet.OpenAuthSecurityManager.RequestAuthentication(String returnUrl) +666 NotesBoard.Controllers.ExternalLoginResult.ExecuteResult(контекст ControllerContext) в каталоге d:\dtaylor\Documents\Visual Studio 2012\Projects\NotesBoard\NotesBoard 36rol. \ Controller \ SystemCler..Mvc.<> C_ DisplayClass1a.b_17 () +33 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (фильтр IResultFilter, ResultExecutingContext preContext, Func1 continuation) +613 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func1 продолжение) +613 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, фильтры IList`1, ActionResult actionResult) +263 System.Web.Mvc.Async.<> C_ DisplayClass25.b_22 System2SyncRync..Web.Mvc.<> C_ DisplayClass1d.b_18 (IAsyncResult asyncResult) +28 System.Web.Mvc.Async.<> C_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult) asyncResult) +53 System.Web.Mvc.Async.<> c_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.Mvc.<> c_ DisplayClass8.b_3 (IAsyncResult asyncResult) +42 System.Web.Mvc. Async.<> C_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(выполняется)

Для Twitter я получаю: "Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенный хост не смог ответить 199.16.156.72:443" со следующей трассировкой стека

[SocketException (0x274c): попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, потому что подключенный хост не смог ответить 199.16.156.72:443] System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +273 System.Net.ServicePoint.ConnectSocketInternal(логическое значение connectFailure, Socket s4, Socket s6, Socket& socket, IP-адрес и адрес, состояние ConnectSocketState, IAsyncResult asyncResult, исключение & исключение): исключение)

[WebException: Невозможно подключиться к удаленному серверу] System.Net.HttpWebRequest.GetResponse() +8527180 DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse(запрос HttpWebRequest, параметры DirectWebRequestOptions) +261

[ProtocolException: Произошла ошибка при отправке прямого сообщения или получении ответа.] DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse(запрос HttpWebRequest, параметры DirectWebRequestOptions) +1862 DotNetOpenAuth.Messaging.Channel.RequestCoreSignMaseTecNet.NetMoreNet ().Request(IDirectedProtocolMessage requestMessage) +138 DotNetOpenAuth.Messaging.Channel.Request(IDirectedProtocolMessage requestMessage) +45 DotNetOpenAuth.OAuth.ConsumerBase.PrepareRequestUserAuthorization(обратный вызов Uri, IDictionary2 requestParameters, IDictionary2 redirectParameters, String & requestToken) +202 DotNetOpenAuth.AspNet.Clients.DotNetOpenAuthWebConsumer.RequestAuthentication (обратный вызов Uri) +88 DotNetOpenAuth.AspNet.OpenAuthSecurityManager. \ dtaylor \ Documents \ Visual Studio 2012 \ Projects \ NotesBoard \ NotesBoard \ Controllers \ AccountController.cs: 369 System.Web.Mvc.<> c_ DisplayClass1a.b_17 () +33 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IR) фильтр, ResultExecutingContext preContext, Func1 continuation) +613 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func1 продолжение) +613 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, фильтры IList`1, ActionResult actionResult) +263 System.Web.Mvc.Async.<> C_ DisplayClass25.b_22 System2SyncRync..Web.Mvc.<> C_ DisplayClass1d.b_18 (IAsyncResult asyncResult) +28 System.Web.Mvc.Async.<> C_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult) asyncResult) +53 System.Web.Mvc.Async.<> c_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.Mvc.<> c_ DisplayClass8.b_3 (IAsyncResult asyncResult) +42 System.Web.Mvc. Async.<> C_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(выполняется)

Facebook, с другой стороны, фактически запрашивает у меня имя пользователя и пароль, но затем также возвращаетсообщение "Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, потому что подключенный хост не смог ответить 173.252.100.27: 443"и следующая трассировка стека:

[SocketException (0x274c): попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенный хост не ответил 173.252.100.27:443] System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +273 System.Net.ServicePoint.ConnectSocketInternal(логическое значение connectFailure, Socket s4, Socket s6, Socket& socket, IP-адрес и адрес, состояние ConnectSocketState, IAsyncResult asyncResult, исключение & исключение): исключение)

[WebException: не удается подключиться к удаленному серверу] System.Net.WebClient.DownloadDataInternal(адрес Uri, веб-запрос и запрос) +3624556 System.Net.WebClient.DownloadString(адрес Uri) +213 DotNetOpenAuth.AspNet.Clients.FacebookClient.okenccessT (Uri returnUrl, String authorizationCode) +399 DotNetOpenAuth.AspNet.Clients.OAuth2Client.VerifyAuthentication(HttpContextBase context, Uri returnPageUrl) +186 DotNetOpenAuth.AspNet.OpenAuthSecurityManager.WuthAWE (HttpContextBase context, String returnUrl) +250 NotesBoard.Controllers.AccountController.ExternalLoginCallback(String returnUrl) в каталоге d:\dtaylor\Documents\Visual Studio 2012\Projects\NotesBoard\NotesBoard\Controllers\AccountController.cs, 225 lambase, Object []) +127 System.Web.Mvc.ReflectedActionDescriptor.Execute (ControllerContext controllerContext, IDictionary2 parameters) +274 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 параметра) +39 System.Web.Mvc.Async.<> C_ DisplayClass39.b_33 () +120 System.Web.Mvc.Async.<> C_ DisplayClass4f.b_49 () +452 System.Web.Mvc.Async.<> c_ DisplayClass4f.b_49 () +452 System.Web.Mvc.Async.<> c_ DisplayClass37.b_36 (IAsyncResult asyncResult) +15 System.Web.Mvc.Async.<> c_ DisplayClass2a.b_20 () +33 System.Web.Mvc.Async.<> C_ DisplayClass25.b_22 (IAsyncResult asyncResult) +240 System.Web.Mvc.<> C_ DisplayClass1d.b_18 (IAsyncResult asyncResult) +28 System.Web.Mvc.Async.<> c_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) +53 System.Web.Mvc.Async.<> c_ DisplayClass4.b_3 (IAsyncResult ar) +15 Система.Web.Mvc.<> C_ DisplayClass8.b_3 (IAsyncResult asyncResult) +42 System.Web.Mvc.Async.<> C_ DisplayClass4.b_3 (IAsyncResult ar) +15 System.Web.CallHandlerExecutionStep.System.Wpp.tt.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(шаг IExecutionStep, логический и завершенный синхронно) +288

PS. Стоит отметить, что мы получаем доступ к Интернету через прокси, который установлен на сервере в IE. В предоставленных шаблонах я не нашел ни одного кода, который позволял бы мне указывать прокси-серверы и т. Д.

Помогите, пожалуйста.

1 ответ

Решение

Я думаю, что смог решить эту проблему. Оказывается, наш прокси-сервер, похоже, был проблемой. У меня был пул приложений, на котором работал этот сайт в IIS, настроенный для использования NetworkServices в качестве идентификатора пула приложений. Я изменил Идентичность, чтобы работать как я сам, чтобы увидеть, была ли проблема решена, и это было. Очевидно, что не рекомендуется запускать сайт в качестве учетной записи пользователя, поэтому я буду просить нашу ИТ-команду создать учетную запись домена для этого сайта, который также имеет доступ через наши прокси-серверы.

Я надеюсь, что это помогает кому-то еще с той же проблемой.

Другие вопросы по тегам