Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
Всем привет! Пишу web-приложение, кот. использует web-сервис. Все в одном солюшене... web-сервис запущен. Обращаюсь к методу web-сервиса adosm.ado_small WS = new mySiteAdmin.adosm.ado_small(); adosm.ParamsSQLCommand pr=new mySiteAdmin.adosm.ParamsSQLCommand(); pr.свойство1=...; pr.свойствоN=...; adosm.ParamsSQLCommand[] prMas=new adosm.ParamsSQLCommand[1]; prMas.SetValue(pr, 0); //Вызов web-службы string sx = WS.runSP_TEST(prMas, "saveTxt", true, 1, out sErr); но в итоге я получаю сообщение об ошибке: "System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.\n at System.Data.SqlClient.SqlConnection.GetOpenConnection(String method)\n at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)\n at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)\n at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)\n at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()\n at ADO_class.ado.runSP_TEST(ParamsSQLCommand[] paramLst, String sNameSP, Boolean flagReturn, Int32 iCount, String& sErr) in D:\\...путь..\\ado.cs:line 2810\n at ado_small.Service1.runSP_TEST(ParamsSQLCommand[] paramLst, String sNameSP, Boolean flagReturn, Int32 iCount, String& sErr) in D:\\...путь..\\Service1.asmx.cs:line 36\n --- End of inner exception stack trace ---" Сразу скажу, что вызываемый метод работает исправно с теми же входными параметрами. Проверял при использовании без web-сервисов и никакой connection при этом не закрывается! Как быть? в чем ошибка? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 16:04 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
А? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 16:22 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
соединения с базой. В исключении сообщается, что соединение с базой закрыто. проверьте строку соединения и открывается ли соединение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 16:24 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
то что написано я и сам понимаю... но бред какой-то. вот сокращенный код процедуры: public string runSP_TEST(ADO_class.ParamsSQLCommand[] paramLst, string sNameSP, bool flagReturn, int iCount, out string sErr) { ErrorText = "";//Чистим текст ошибки string sVal = ""; int i = 0; sErr = ""; if (iCount <= 0) return "10";//0; SqlConnection myConnTMP = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString); SqlCommand myCmd = new SqlCommand(sNameSP, myConnTMP); myCmd.CommandType = CommandType.StoredProcedure; ...дальше в myCmd вставляем параметры и вызываем try{ myCmd.ExecuteNonQuery(); } catch (SqlException exp) { sErr = exp.Message; return "_Direction=" + paramLst[0]._Direction.ToString() + " _Name=" + paramLst[0]._Name.ToString() + " _Size=" + paramLst[0]._Size.ToString() + " _Type=" + paramLst[0]._Type.ToString() + " _Val=" + paramLst[0]._Val.ToString(); //return -1; } finally { myConnTMP.Close(); } так что как видите, все ок с открытием коннекшена! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 16:52 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
проверьте строку соединения и открывается ли соединение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 16:54 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
А где Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 16:56 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
flashslashто что написано я и сам понимаю... но бред какой-то. вот сокращенный код процедуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. то что вы создали эксемпляр класса-строки соединения, еще ни о чем не говорит. соединение нужно ещё и открывать. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 16:58 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
IvanN, сорри, это я случайно в тексте сообщения упустил эту команду. Команда Open есть, но ошибка остается прежней... Такое ощущение, что просто нет прав на открытие Connection.. хотя в проекте, где я использую тот же метод, но не через web service, а как просто класс никакой ошибки нет (повторяю)! Вся проблема связана только с использованием web сервиса! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 18:17 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
flashslashВся проблема связана только с использованием web сервиса! у вас наверное сервис выполняет это от эккаунта, у которого нет прав ходить в эту базу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 18:21 |
|
||
|
почему web service не может выполнить ExecuteNonQuery?
|
|||
|---|---|---|---|
|
#18+
winsky!flashslashВся проблема связана только с использованием web сервиса! у вас наверное сервис выполняет это от эккаунта, у которого нет прав ходить в эту базу... Да, я это уже понял. Сейчас пробую. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 18:54 |
|
||
|
|

start [/forum/topic.php?fid=19&gotonew=1&tid=1397824]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 173ms |

| 0 / 0 |
