Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка при открытии базы данных web-сервисом, (web-сервис запускается с IIS) 
V
    Опции темы
sedoy
Дата 1.3.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



Я создал простенький веб-сервис,который при его вызове обращается к базе данных.Когда я  его с vs2005 открываю и компилирую-автоматически запускается asp.net development server и порт через который выполняется web-сервис.При этом запускается браузер (http://localhost:3867/mySrvice/Service.asmx).В этом случае web-сервис при обращении к базе данных (БД запущена на sql-сервере)отображает данные в формате xml.

Вопрос:
Почему,когда создаю виртуальный каталог в IIS и укзываю путь на тот же веб-сервис при его вызове в браузере (http://localhost/myService/Service.asmx)он выполняется, но вместо необходимых данных выводит сообщние об ошибке открыть базу данных?

исходный код 
файл service.asmx :

<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>


файл App_Code/Service.cs :

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {}
    [WebMethod]
    public DataSet getMyTable() {
        SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
        sb.DataSource = @".\sqlexpress"; sb.InitialCatalog = "Cars"; sb.IntegratedSecurity = true;
        SqlConnection sqlConn = new SqlConnection(sb.ConnectionString.ToString() );
        SqlDataAdapter myDA =new SqlDataAdapter("Select * from Inventory", sqlConn);
        DataSet ds = new DataSet();
        myDA.Fill(ds, "Inventory");
        return ds;
    }
    
}
сообщение в ответе web-сервиса:

System.Data.SqlClient.SqlException: Cannot open database &quot;Cars&quot; requested by the login. The login failed.
Login failed for user 'OSNOVA\ASPNET'...и т.д.

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

PM MAIL   Вверх
Crimp
Дата 1.3.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 21.10.2007
Где: Tula

Репутация: нет
Всего: 2



у тябя же всё есть, смотри что тебе выдаёт 
System.Data.SqlClient.SqlException: Cannot open database &quot;Cars&quot; requested by the login. The login failed.
Login failed for user 'OSNOVA\ASPNET'...и т.д.

ключевая фраза Login failed smile

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

Если это конечно то о чём я подумал.

Это сообщение отредактировал(а) Crimp - 1.3.2008, 17:00
PM MAIL ICQ   Вверх
sedoy
Дата 1.3.2008, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



Не помогло. Я думаю дело не в этом, ведь веб-сервис один и тот же - строка подключения одна и таже. С  vs 2005 все работает, а с вызовом локального веб -узла данные не может открыть в БД
PM MAIL   Вверх
Crimp
Дата 1.3.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 21.10.2007
Где: Tula

Репутация: нет
Всего: 2



Потому что запуск из под студии и без, две большие разници, и он тебе пишет что Login failed. Ты помотрел какой тип аудентификации у тебя включён для коннета. Надо выключить анонимуса smile и вкл. window аудентификацию.
PM MAIL ICQ   Вверх
sedoy
Дата 2.3.2008, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



Я это выставил. Зашел в свойства моего вртуального каталога --> безопасность каталога-->ананимный доступ (поставил отметку в поле анонимный доступ и поле встроенная проверка подлинности windows.
ничего это не помагает.
Я так понял что надо еще посмотреть в панель управления-->администрирование-->локальная политика безопасности-->локальные политики и там уже параметры безопасности и назначение прав пользователям
если здесь надо еще что -то поменять, то что именно?

или может в строке подключения что-то подкорректировать.Сейчас так:
 
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
        sb.DataSource = @".\sqlexpress"; sb.InitialCatalog = "Cars"; sb.IntegratedSecurity = true;
        //sb.UserID = "sa";sb.Password="";
        SqlConnection sqlConn = new SqlConnection(sb.ConnectionString.ToString() );
        SqlDataAdapter myDA =new SqlDataAdapter("Select * from Inventory", sqlConn);
        DataSet ds = new DataSet();
        myDA.Fill(ds, "Inventory");
       

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.