Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1 / 1 / 4
Регистрация: 14.07.2013
Сообщений: 19
1
.NET 4.x

Нет доступа к БД после развертывания WCF сервиса

19.11.2014, 11:24. Показов 1684. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени!

Работаю на VS Express 2013.
Есть простой проект на Silverlight со службой WCF и БД MS SQL.
В студии проект запускается без проблем. С базой коннектится нормально, SQL-команды выполняются.

После развертывания в папку (Publish method - FileSystem) запускаю диспетчер IIS.
Добавляю к дефолтному сайту мое приложение. Запускаю. Открывается без проблем.

Но когда я пытаюсь достучаться до БД - "Удаленный сервер возвратил ошибку NotFound".


выкладывать куски кода считаю недостаточным.

Подскажите, что я делаю неверно?
проект во вложении:
Вложения
Тип файла: rar CustomDataBaseDeploy.rar (2.24 Мб, 9 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2014, 11:24
Ответы с готовыми решениями:

WCF RIA приложение не работает после развертывания на локальном IIS
Помогите! Не могу найти причину. Сроки все вышли... 1. Развернула wcf ria приложение на локальном ...

Запуск WCF сервиса
Добрый день. Помогите, если не сложно. 4 день бьюсь уже, не понимаю, в чём проблема. Пытаюсь...

Пример WCF сервиса
Всем привет! Гуглил но не нашел скажем так "нормального примера" WCF сервиса. Все примеры простые...

Конфигурация WCF сервиса
Добрый день. Подскажите, пожалуйста, как правильно конфигурировать WCF сервис. У меня было...

9
87 / 55 / 15
Регистрация: 01.10.2010
Сообщений: 492
19.11.2014, 20:30 2
Права в Сервере/БД есть для учётной записи из-под которой запущена служба WCF?
0
1 / 1 / 4
Регистрация: 14.07.2013
Сообщений: 19
19.11.2014, 20:36  [ТС] 3
подключение к серверу через windows-authentication. В самой БД пользователей не ставил
если я правильно понимаю, то права есть
0
87 / 55 / 15
Регистрация: 01.10.2010
Сообщений: 492
20.11.2014, 10:21 4
а что за БД? (проект лень смотреть)
0
1 / 1 / 4
Регистрация: 14.07.2013
Сообщений: 19
20.11.2014, 11:00  [ТС] 5
Простая тестовая, создал только для этого вопроса.

SQL Server 10.0.1600.

Одна таблица, одна колонка текстовая и первичный ключ int. (testDB -> testTable -> text(PK id, varchar(10)))

Сервис реализует запись-чтение-удаление трех строк (хардкодом - чтобы быстрее).

Добавлено через 22 минуты
Подозреваю, что у меня проблема с развертыванием.
А точнее, со свойствами Package/Publish проекта
0
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
20.11.2014, 11:23 6
прав наверняка каких то нет. Зайдите в администрирование-просмотр событий и посмотрите какие ошибки есть в это время, пока к сайту стучитесь
1
1 / 1 / 4
Регистрация: 14.07.2013
Сообщений: 19
20.11.2014, 12:00  [ТС] 7
Ловится 2 события:
1.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="MSSQL$SQLSERVER2008" /> 
  <EventID Qualifiers="16384">17137</EventID> 
  <Level>4</Level> 
  <Task>2</Task> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2014-11-20T08:52:14.000000000Z" /> 
  <EventRecordID>15291</EventRecordID> 
  <Channel>Application</Channel> 
  <Computer>Ellims-PC</Computer> 
  <Security UserID="S-1-5-82-794271414-2547205055-1060673776-2579641347-304524694" /> 
  </System>
- <EventData>
  <Data>testDB</Data> 
  <Binary>F14200000A0000001800000045004C004C0049004D0053002D00500043005C00530051004C0053004500520056004500520032003000300038000000070000006D00610073007400650072000000</Binary> 
  </EventData>
  </Event>
2.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="MSSQL$SQLSERVER2008" /> 
  <EventID Qualifiers="49152">18456</EventID> 
  <Level>0</Level> 
  <Task>4</Task> 
  <Keywords>0x90000000000000</Keywords> 
  <TimeCreated SystemTime="2014-11-20T08:52:15.000000000Z" /> 
  <EventRecordID>15292</EventRecordID> 
  <Channel>Application</Channel> 
  <Computer>Ellims-PC</Computer> 
  <Security UserID="S-1-5-82-794271414-2547205055-1060673776-2579641347-304524694" /> 
  </System>
- <EventData>
  <Data>IIS APPPOOL\ASP.NET v4.0</Data> 
  <Data>Reason: Failed to open the explicitly specified database.</Data> 
  <Data>[CLIENT: <local machine>]</Data> 
  <Binary>184800000E0000001800000045004C004C0049004D0053002D00500043005C00530051004C0053004500520056004500520032003000300038000000070000006D00610073007400650072000000</Binary> 
  </EventData>
  </Event>
0
87 / 55 / 15
Регистрация: 01.10.2010
Сообщений: 492
20.11.2014, 21:19 8
есть этот пользователь IIS APPPOOL\ASP.NET v4.0 в пользователях у сервера?

Добавлено через 2 минуты
try - catch в Exception при создании соединения. У меня обычно выдавало: такой-то пользователь не может получить доступ к серверу или такая-то БД не найдена (при подключении к SQL-сервер)
1
1 / 1 / 0
Регистрация: 21.10.2014
Сообщений: 5
21.11.2014, 11:31 9
Сделай подключение к базе смешанное, заведи пользователя в базе и настрой в программе подключение к базе от этого пользователя - всё заработает! А IIS пашет же под системным аккаунтом! Можно наверно и со встроенными пользователями и группами поиграться, но я не делал... так проще, а разбираться было лениво ;-)
1
1 / 1 / 4
Регистрация: 14.07.2013
Сообщений: 19
21.11.2014, 23:16  [ТС] 10
Спасибо за помощь! Вроде разобрался.
Да, проблема была в доступе со стороны БД.


Решением стал следующий скрипт, дающий права владельца подключаемому юзеру:
SQL
1
2
3
4
5
6
7
8
9
CREATE LOGIN [IIS APPPOOL\ASP.NET v4.0]                    -- создать логин для подключения сервиса IIS
  FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
  DEFAULT_LANGUAGE=[us_english]
GO
CREATE USER [testDB_User]                               -- создать пользователя ([любое_имя])под созданным логином
  FOR LOGIN [IIS APPPOOL\ASP.NET v4.0]
GO
 EXEC sp_addrolemember 'db_owner', 'RssAggregatorUser'  -- предоставить созданному пользователю права владельца
GO
Скрипт запускается из SQL Management Studio (по-другому пока не пробовал )

Добавлено через 1 час 42 минуты
из командной строки:

sqlcmd -S [имя_сервера] -i [путь_к_скрипту.sql] -o [путь_к_лог_файлу.txt]

например моя команда:

sqlcmd -S ELLIMS-PC\SQLSERVER2008 -i d:\code\SqlScripts\GrantAccess.sql -o d:\Log.txt

Добавлено через 52 минуты
Пардон, вверху в коде вместо 'RssAggregatorUser' должно быть 'testDB_User'.
1
21.11.2014, 23:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2014, 23:16
Помогаю со студенческими работами здесь

Хостинг WCF сервиса
Был WCF-сервис, который хостился на консольном приложении, у этого консольного приложения были свои...

Вызов WCF сервиса
Добрый день. Скажу сражу что сервисы я начал изучать недавно Передо мной такая задача. в...

Доступность метаданных WCF сервиса
Создал проект с двумя севрисами в нем. Создал собственный класс для аутентификации пользователя в...

Создание многопользовательского WCF-сервиса
Задание предполагает реализацию простого многопользовательского WCF-сервиса с асинхронными...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru