2010-09-16 2 views
2

Так при вызове метода к WebService, я получаю эту ошибку:System.ServiceModel.FaultException Ошибка SQL, это на их конце?

«System.ServiceModel.FaultException`1 [System.ServiceModel.ExceptionDetail]: Произошла ошибка сети связанных или экземпляра конкретных при установлении соединение с SQL Server. Сервер не найден или недоступен. Убедитесь, что имя экземпляра верное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных труб, ошибка: 40 - не удалось открыть соединение на SQL Server) (Fault Detail равен ExceptionDetail, скорее всего, создан IncludeExceptionDetailInFaults = true, значение которого: System.Data.SqlClient.SqlException: произошла связанная с сетью или конкретная конкретная ошибка при установлении соединения с SQL Server Сервер не найден или недоступен. Проверить что имя экземпляра верное и что SQL Server настроен для разрешения удаленных подключений. (поставщик: поставщик Named Pipes, ошибка: 40 - не удалось открыть подключение к SQL Server) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение исключений SqlException, логическое разрытие соединения) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj) на System.Data.SqlClient.TdsParser.Connect (ServerInfo serverInfo, SqlInternalConnectionTds connHandler, булевой ignoreSniOpenTimeout, Int64 timerExpire, булевой шифровать, булевой trustServerCert, булевой integratedSecurity, SqlConnection owningObject) в System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (ServerInfo serverInfo, Str ...). «

Что это может быть? Сначала я подумал, что это происходит локально, но кто-то ниже указал с момента ошибки или обернут в ServiceModel.FaultException, это может быть на стороне хоста. Это определенно на их конце? Или есть какие-то возможные способы, которые могут быть на моем конце?

Посмотрите на комментарии ниже, чтобы узнать, как поиск неисправностей зашел так далеко ...

+0

Перезагрузите сервер! –

+0

хорошо прошло уже два дня, и я перезагрузил свой SQL-сервер почти раз в день, но он также был на развернутой машине, и этот сервер также перезагружается каждый день. такая же ошибка. Дело в том, что если его наша БД и не Theres, не все ли не работает? все остальное работает ... – Scott

+1

Я не слишком опытен с WCF, но факт, что он завершен в FaultException, означает, что он поступает с удаленного сервера, а не с локальной стороны соединения? Похоже, что у вас будет SQLException, если бы оно было на локальной стороне, и это исключение передается вам по каналу WCF. – SqlRyan

ответ

2

Это на конце обслуживания. Более того, эти ребята не руководствуются принципами безопасности и включают внутренние детали исключения для мыльных ошибок.

Вы используете транспортный канал на основе HTTP? Если это так, используйте Fiddler, заберите SOAP-ошибку из службы и отправьте ее компании как доказательство того, что ошибка на их стороне. Если вы используете другой транспортный канал или шифрование, используйте WCF message logging и снова отправьте зарегистрированное сообщение компании.

+0

Большое вам спасибо. Однако вы уверены, что это конец? - Основная причина в том, что я не хочу их обманывать, и это будет простое исправление на нашей стороне - хотя я и на мгновение ударился головой об этом, и почти положил его на их конец. – Scott

+0

Используйте ведение журнала или Fiddler, чтобы найти доказательство. –

0

Похоже, вы пытаетесь получить доступ к серверу SQL через именованные каналы; этот протокол позволяет подключаться к серверу sql только в том случае, если он находится в одной подсети. Просто измените протокол на tcp.

+0

Ну, главное, этот код работал раньше, и он внезапно остановился, и ничего не изменилось ... Я спросил кого-то в компании, может ли он быть на службе, но они не убеждены это – Scott

1

Выполняется ли сервис в вашем блоке dev, но сбой при его развертывании? Возможно, есть разница между брандмауэрами между двумя локациями и SQL Server. Из командной строки «TELNET YourSqlServer 1433» дает вам пустой экран или время ожидания?

Если вы можете проверить, что служба работает где-то (например, визуальная студия или ваш блок разработчика), это где-то начать - что отличает между рабочими и нерабочими местами?

Если нет, вызов веб-службы немедленно сработает с этим сообщением или он не работает через 30 секунд? Отложенный отказ указывает на тайм-аут, когда немедленный сбой является вероятной конфигурацией.

+0

Как в обозревателе, так и в развернутой среде, он генерирует одно и то же исключение. Это не тайм-аут ... это происходит примерно через секунду после вызова службы .... im sooo confused – Scott

+0

@Scott - Можете ли вы опубликовать строку подключения, которую используете? Если вам нужно, введите пароль или что-нибудь еще. – SqlRyan

+0

- это cnnstr в проекте службы, а также основной файл web.config для моего приложения – Scott

Смежные вопросы