KeyWeb
1111111111Rating 5.00 (3 Votes)

Сегодня хочу рассказать о удивительном "приключении" в которое погрузился в момент публикации своего WEB приложения в IIS. В краце история такова - есть web приложение, написанное на C#, которое обращается к БД, которая в свою очередь расположена на другом сервере. Приложение совершая соединение с БД, выполняет SQL запрос и публикует данные на ASPX странице в XML виде, соединение осуществлялось из кода:

SqlConnection con = new SqlConnection("Data Source=SERVER;Initial Catalog=DB;Integrated Security=True");

После окончательной отладки приложения, настала пора его публикации и вот тут наступило самое веселье, WEB Deploy не проходил валидацию, ссылаясь на отсутствие ресурса (как оказалось в исключение брандмауэера необходимо добавить порты - 80, 8172 и обязательно установить требуемые сервисы - Web Management Service и Web Deployment Tool), метод публикации File System публиковал успешно, в IIS создаем пустой сайт, указываем папку с опубликованным веб приложением, запускаем но тут возникает проблема при обращении к сайту, данные XML не возвращаются, возникает ошибка обращения к БД анонимным пользователем, перенес данные о подключении в web.config:

<connectionStrings>
    <add name="connNorth" connectionString="data source=SERVER;initial catalog=Northwind;integrated security=True;multipleactiveresultsets=True;App=EntityFramework" providerName="System.Data.EntityClient" />
  </connectionStrings>

Создал в AD пользователя, назначил ему разрешения на базу, добавил в строку подключения:

<connectionStrings>
    <add name="connNorth" connectionString="data source=SERVER;uid=USER;pwd=123456;initial catalog=Northwind;integrated security=True;multipleactiveresultsets=True;App=EntityFramework" providerName="System.Data.EntityClient" />
  </connectionStrings>

Указываю настройки подключения из кода:

var connection = ConfigurationManager.ConnectionStrings["connNorth"].ConnectionString;

использую соединение в SqlDataAdapter:

SqlDataAdapter da = new SqlDataAdapter(query, connection);

Пробую, при отладке, все работает, публикую та же самая ошибка, вопрос решился запуском пула от имени данного пользователя:

  • Консоль IIS - Имя сервера - Application Pools
  • Находим свой пул, открываем Advanced Settings...
  • Process Model - Identity добавляем Custom Account, в качестве которого указываем нашего пользователя, доступ которому мы предоставили.

Уфф.. заработало...

 

Добавить комментарий


Обновить
Защитный код

KeyWeb

Сейчас 77 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз