Устранение ошибки SQL «Не удалось найти сетевой путь»

Вопрос:Я создал очень маленький сайт ASP.NET, используя MS Access 2010 в качестве базы данных, которая работает в тестовом режиме. Это для автономного приложения для интрасети, поэтому я не беспокоюсь о безопасности - доступ к оборудованию - это путь взлома. Все это встроено в VS WebExpress 2012. Когда я пытаюсь опубликовать в IIS 7.5, откройте страницу

Вопрос:

Я создал очень маленький сайт ASP.NET, используя MS Access 2010 в качестве базы данных, которая работает в тестовом режиме. Это для автономного приложения для интрасети, поэтому я не беспокоюсь о безопасности – доступ к оборудованию – это путь взлома. Все это встроено в VS WebExpress 2012.

Когда я пытаюсь опубликовать в IIS 7.5, откройте страницу заставки веб-сайта, а затем перейдите на вторую страницу, мне дают два сообщения об ошибках верхнего уровня:

[Win32Exception (0x80004005): сетевой путь не найден]

[SqlException (0x80131904): При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: поставщик Named Pipes, ошибка: 40 – не удалось открыть соединение с SQL Server)]

Моя строка подключения:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=»C:inetpubwwwrootApp_DataPersonalArt Version 0055.accdb»;Persist Security Info=True

Я не знаю, почему это создает ошибку SQL Server, поскольку я не пытаюсь использовать SQL Server.

Я пробовал посмотреть на сторону SQL Server здесь. Я проверил, что SQL Server запущен, что браузер SQL включен и работает, и что соответствующие порты открыты в брандмауэре.

Я добавил строку подключения к IIS 7.5, которая, по крайней мере, указывает на ACE.OLEDB.12.0, но я не могу удалить строку подключения по умолчанию для SQL Server Express.

Я посмотрел здесь о построении строк подключения, и я видел инструкции по удалению строк плохих подключений и их замене здесь (но я боюсь этого, потому что я этого не понимаю).

Я намерен использовать контроллер планшета WIFI, и я установил, что IIS работает достаточно хорошо, чтобы я мог видеть индексную страницу на контроллере.

Итак, я подпрыгивал, пытаясь понять, является ли это проблемой IIS, проблемой установки/управления SQL или проблемой брандмауэра/безопасности.

Ответ №1

Для ошибки 0x80004005:

Идея # 1: попробуйте удалить двойные кавычки по списку каталогов и перепроверить свой код (я упоминаю об этом, хотя вы, возможно, уже пробовали):

«C:inetpubwwwrootApp_DataPersonalArt Version 0055.accdb»

Идея № 2: ошибка говорит Сетевой путь не найден. Попробуйте создать локальный ресурс и предоставить учетной записи IIS, по крайней мере, разрешения на чтение для этого общего ресурса, изменив список каталогов на что-то вроде

\MyServerMySharePersonalArt Version 0055.accdb

Идея: # 3: Являясь администратором баз данных, я занимаюсь SQL Server, поэтому лично лично попробую проверить строку подключения, чтобы убедиться, что она возвращает данные – с помощью SQL Server. Если он здесь не работает, я бы не ожидал, что он будет работать с ASP.NET:

Попробуйте запустить это в SQL Server, чтобы узнать, даже ли вы получаете запрос назад к имени таблицы в Access (если у вас нет лучшего способа проверить строку подключения):

SELECT * FROM OPENROWSET(‘Microsoft.ACE.OLEDB.12.0’, Provider=Microsoft.ACE.OLEDB.12.0;Data Source=»C:inetpubwwwrootApp_DataPersonalArt Version 0055.accdb»;Persist Security Info=True, ‘SELECT * FROM <your table>’)

Но прежде чем вы это сделаете, вам может потребоваться запустить на SQL Server следующее: он распознает ACE.OLEDB.12.0 и распределенные запросы:

exec sp_configure ‘Show Advanced Options’, 1; RECONFIGURE; GO exec sp_configure ‘Ad Hoc Distributed Queries’, 1; RECONFIGURE; GO EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’AllowInProcess’, 1 GO EXEC master.dbo.sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′, N’DynamicParameters’, 1 GO

Для SqlException (0x80131904):

Ошибка SQL звучит как другая проблема. Попробуйте включить SQL для удаленного подключения в поле production SQL (или везде, где происходит подключение) в диспетчере конфигурации SQL Server:

Оцените статью
Добавить комментарий