2012-02-04 2 views
0

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

У меня есть папка ASPNETDB.MDF в папке appData, созданная из конфигурации ASP.NET. Я создал новую базу данных в хостинге, экспортированную из ASPNETDB.MDF в новую базу данных. Я изменил строку подключения. Локальный интерфейс работает отлично, даже с новой строкой соединения, но после того, как я опубликовал его, у меня есть ошибка Runtime.

Я использую asp login control и CreateUserWizard. BTW, я создал некоторые GridView и SqlDataSource, чтобы показать всех пользователей, и это работает. Но login и createWizard - нет.

web.config

<configuration> 
    <connectionStrings> 
    <add name="ConnectionString" connectionString="Server=mssql3322.dotnet-host.com;Database=aspnetdb3;Uid=SomeUserNAme;Password=SomePassword;" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web>  
     <roleManager enabled="true" /> 
     <authentication mode="Forms" /> 
     <compilation debug="false" targetFramework="4.0" />  
    </system.web> 

</configuration> 

BTW, я судимый добавить поставщик членства в web.config, и она не работает, даже, локальной))

UPD:

Ошибки При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (Поставщик: SQL Network Interfaces, ошибка: 26 - Ошибка Расположение сервера/Instance Указано)

+0

Можете ли вы дать нам дополнительную информацию об этом, просто не работая? Вы получаете какие-то исключения? – EverPresent

+0

Да, извините .. Я добавил ошибку .. – RaShe

ответ

1

Ну для начала вы можете добавить следующие строки в файле web.config:

<configuration> 
    <system.web> 
    <customErrors mode="off"></customErrors> 
    </system.web> 
</configuration> 

Это должно позволить вам получить более подробное сообщение об ошибке о том, что не так. Посмотрите, получилось ли, что вы начали по правильному пути. Он должен по крайней мере предоставить больше информации о том, что может быть неправильным.

Update - попробовать это в web.config:

<connectionStrings> 
    <remove name="LocalSqlServer" /> 
    <add name="LocalSqlServer" connectionString="Server=mssql3322.dotnet-host.com;Database=aspnetdb3;Uid=SomeUserNAme;Password=SomePassword;" providerName="System.Data.SqlClient"/> 
    <add name="ConnectionString" connectionString="Server=mssql3322.dotnet-host.com;Database=aspnetdb3;Uid=SomeUserNAme;Password=SomePassword;" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

Update - Это сработало! Ниже приводится краткое объяснение: По умолчанию классы членства ASP используют строку подключения LocalSqlServer. Причина, по которой код работал на вашей локальной машине, заключается в том, что соединение LocalSqlServer определено в конфигурационном файле уровня машины, чтобы указать на локальную базу данных SQL. Когда вы опубликовали его, SqlDataSource/GridView работал, потому что он вытаскивал соединение с именем ConnectionString, которое указывало на правильный сервер. Однако членство в ASP все еще пыталось подключиться к подключению LocalSqlServer. Вышеприведенная конфигурация просто игнорирует уровень машины LocalSqlServer и определяет его собственный (и он оставляет ConnectionString на месте, чтобы GridView продолжал функционировать).

+0

Я обновил .. Ошибка: При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения.(поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка определения местоположения сервера/экземпляра) – RaShe

+0

@RaShe Это сообщение о том, что база данных не может быть достигнута. Вы изменили весь исходный код, который использовал старый 'connectionstring' для нового? Повторно проверьте его, возможно, членство, роли и аутентификация все еще указывают на неиспользуемую или отсутствующую строку подключения. – balexandre

+0

Похоже, что может возникнуть проблема с вашей строкой подключения. Вы сказали, что у вас есть рабочий SqlDataSource/GridView. Этот SqlDataSource использует ту же самую строку соединения? (Мое первое предположение заключалось в том, что что-то не так с частью «Server =» строки подключения или тегом в теге ) – EverPresent

Смежные вопросы