|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Dessi, примерно так (код я не проверял, у меня нет MS SQL): Код: c# 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
возможно такой output: "output INSERTED.file_content.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT()" не поддерживается. тогда надо сделать insert (или insert с output inserted.[поле ID], если ID строки генерится в базе), а потом "select file_content.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT() from Table where [поле ID] = ID" ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 18:20 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Забыл транзакцию в команде указать. var command = new SqlCommand("... text ...", connection, transaction); ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 18:33 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Lelouch, SqlExeption was unhandled: Cannot find either column "Photos" or the user-defined function or aggregate "Photos.PathName", or the name is ambiguous. в колонке Photos - данные varbinary. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 19:26 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
разобралась ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 19:37 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Lelouch, а это нормально, что 1,5-гигабайтный файл скинуло за 10 секунд и он отображается так как на картинке? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 19:45 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Dessi, нет конечно, пройдитесь отладчиков вот тут: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 19:49 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
LelouchDessi, нет конечно, пройдитесь отладчиков вот тут: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
вы были правы... if (reader.Read()) дает false, и запись не происходит вообще ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:06 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Dessi, в запросе output есть ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:08 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Lelouch, да ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:10 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Lelouch, Код: c# 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:12 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Dessi, скопируйте сюда код. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:13 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Не вижу причину, почему reader.read возвращает false. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:25 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Lelouch, я поменяла инициализацию данныхх с new byte[] на 0х00, и стало true. Но, по-прежнему "записывало" за 10 секунд. Я стала дебагать, итераций 50 может прошло и выдало такое: ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:27 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
1) Вставка точно выполняется? 2) Попробуйте заменить на такое: Код: c# 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:30 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Lelouch, просто output убрать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:31 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Dessi, попробуйте убрать .Flush() ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:32 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Dessi, ну раз у вас работает output, то уже не актуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:33 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Кстати, судя по запросу... Это у кого у вас 1.5 гиговые фотографии? оО ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:39 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
LelouchКстати, судя по запросу... Это у кого у вас 1.5 гиговые фотографии? оО та это просто название колонки такое)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 20:41 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Lelouch, заработало! Я протестила на видео в 440 мб, всё отлично сохраняет, и тот сохраненный без расширения файл отлично открывается медиаплеером! Теперь буду заниматься чтением из Бд... ))) спасибо Вам огромное! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2014, 21:07 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Здравствуйте, форумчане. Работаю над следующим. Есть WCF-сервис (описанный в данной теме), на сервисе происходит запись/скачивание файлов из БД. Суть проблемы: всё чтение/запись происходит через стримы на серверной стороне. Мне же надо на клиентской стороне сделать прогрессБар с ходом выполнения закачки/загрузки. Никак не могу понять, как сделать отображение процесса, который происходит на сервере, на клиентской стороне. Все мозги сломала... Подскажите, пожалуйста. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2014, 15:53 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
уже не актуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2014, 16:47 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Здравствуйте, форумчане. Снова обращаюсь к вам за помощью. Суть задания: скачать файл через wcf-сервис с удаленной БД. Суть проблемы: небольшие файлы скачивает без проблем. А вот с файлами побольше - проблема. Выкидывает ексепшн.Тестила закачку одного и того же 1,5-гигабайтного файла, и ексепшн всегда в разные моменты: то через 900 мб закачки, то через 1,1гб, то через 1,4гб, то через 600 мб...вот ексепшн: Код: c# 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
вот конфиг сервера: Код: xml 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
вот конфиг клиента: Код: xml 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.
вот сам метод закачки файла: Код: c# 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73.
вот код скачивания файла со стороны клиента: Код: c# 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
так же есть лог, но в нем те же в точности ошибки. Не знаю что делать... помогите, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 14:29 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
сделала лог ещё и для сервера... вот результат: Код: xml 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
The handle is invalid? Но почему?? Какое-то время ж файл пишется... я в недоумении.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 16:07 |
|
Создание БД через WCF-сервис
|
|||
---|---|---|---|
#18+
Я разобралась... Дело было в том, что конекшн и транзакшн в методе GetFile со временем попадали под сборку мусора, и попадали они до завершения чтения потока. Так как конекшн и транзакшн диспоузились во время чтения из стрима, программа вылетала с ошибкой, что соединение было принудительно закрыто. РЕШЕНИЕ было таковым: чтоб конекшн и транзакшн не попадали под сборку мусора, я классе сервиса создала два приватных поля типа конекшн и транзакшн, а в методе GetFile присвоила в эти поля текущие конекшн и транзакшн. Таким образом сборщик мусора при проверке конекшн и транзакшн будет видеть, что на них кто-то ссылается и не будет делать диспоуз. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Во-вторых, я изменила ServiceBehavior таким образом, чтобы для каждого сеанса(сессии) создавался свой экземпляр сервиса - один на всю сессию: Код: c# 1. 2. 3. 4. 5.
и... всё заработало! =) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 17:20 |
|
|
start [/forum/topic.php?fid=19&msg=38570861&tid=1396993]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 162ms |
0 / 0 |