2011-01-27 4 views
1

Я создал веб-сайт, который отлично работает на моей виртуальной машине, где я ее разработал.Sharepoint Webpart

Но когда я пытаюсь запустить тот же веб-сайт на своей физической машине, я не могу открыть SQL-соединение, поскольку в SQL Server есть поле «Отдельно» в сети.

Мой физический, виртуальный и SQL Box находятся на одной и той же сети, но по какой-то причине, он не работает на моей физической машине,

Это Придумайте следующее сообщение: Войти Сбой пользователя «NT AUTHORITY \ ANONYMOUS LOGON '

В чем причина этой проблемы?

+0

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

+0

con.ConnectionString = "Server =" + _ipAddress + "; Database =" + _Database + "; Persist Security Info = True; Идентификатор пользователя = имя пользователя; пароль = пароль; Trusted_Connection = True"; –

+0

Это работает Марек. Большое спасибо. –

ответ

1

Указано User Id и Password, а затем установить Trusted_Connection в True, так что я думаю, что встроенная проверка подлинности используется - удалить Trusted_Connection=True часть.

+0

Большое спасибо Мареку. Вы хороший советник. благодаря –

2

Вы используете встроенную защиту, что означает, что текущий пользователь используется для аутентификации в отношении службы базы данных. На рабочем сервере выполняется код веб-сайта, используя анонимного пользователя. И (конечно) этот пользователь не имеет права доступа к другим ресурсам других файлов веб-сервера.

Во избежание этого поведения используйте специальную учетную запись, использующую безопасность SQL-Server. Смотрите этот пример строка подключения:

connectionString="Data Source=SERVERHOSTNAME;Initial Catalog=YOURDATABASE;Persist Security Info=True;User ID=YOURUSER;Password=YOURPASSWORD"; 

Будь уверен, чтобы получить правильный вход у администратора базы данных производства для вашей базы данных с соответствующими правами (например, db_reader).

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