Я работаю над этим уже несколько дней.
У одного из наших клиентов есть трехуровневый план сервера: сервер IIS, сервер приложений (на котором находится приложение Asp.Net MVC3) и сервер базы данных. Все серверы - Windows Server 2012 R2. Сервер приложений и сервер БД находятся в собственном домене, сервер IIS - в другом домене.
Сервер IIS находится в DMZ, а брандмауэр отделяет его от сервера приложений и сервера SQL.
Я могу подключиться к экземпляру БД SQL-сервера через ODBC на сервере приложений с желаемыми учетными данными.
IIS подключается к приложению через общий ресурс UNC. Пул приложений запускается с использованием локальной учетной записи. На сервере приложений есть еще одна локальная учетная запись с тем же именем пользователя и паролем.
База данных SQL Server подключается через проверку подлинности SQL Server.
Когда я подключаюсь к веб-сайту, я получаю свой экран входа в систему. Когда я пытаюсь войти в систему (когда нужно использовать БД), я получаю следующую ошибку:
Win32Exception:
Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом по прошествии определенного периода времени, или установленное соединение не удалось из-за того, что подключенный хост не ответил.
SqlException:
Ошибка, связанная с сетью или конкретным экземпляром, при установлении соединения с SQL-сервером. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений.
Извините, я работаю с VMWare и не могу копировать / переносить напрямую с серверов.
Что я считать происходит, заключается в том, что сервер IIS запускает приложение локально и из-за DMZ и другого домена не может видеть сервер БД.
Мне нужен IIS для запуска приложения, чтобы приложение могло взаимодействовать с БД. Как мне лучше всего этого добиться? Могу ли я настроить IIS так, чтобы он запускал приложение на сервере приложений? Если да, то какие параметры конфигурации мне нужны?
Если вам нужна дополнительная информация, просто спросите, и я предоставлю.
Я готов дать столько голосов против, сколько потребуется, чтобы это сделать.
РЕДАКТИРОВАТЬ:
Могу ли я настроить IIS для пересылки запросов на внутренний сервер?
Я решил эту проблему, настроив обратный прокси-сервер от веб-сервера к серверу приложений с помощью маршрутизации запросов приложений и перезаписи URL. В приведенном ниже URL-адресе есть инструкции, которым я следовал.
http://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis
Достаточно простое решение того, в чем я слишком долго застревал - у меня нет большого опыта работы с серверами, но когда вы в стартапе, вы делаете то, что должны.