2015-08-19 2 views
0

публикации MVC приложения в IIS .Здесь я использую Model First Approch так строка соединения автоматически создается и мое имя SQL сервера. \ SQL EXPRESS (не локальный) и использует Проверка подлинности Windows для входа в SQl Server 2008. и Visual Studio 2015 используетсярешаемые .. Ошибка доступа к SQL Server .. Как опубликовать MVC приложения в IIS

проверить эту ошибку: EXECUTE разрешение было отказано на объекте «SP_Login», база данных «Hospital_Employee», схема «ДБО» Описание: Необработанное исключение во время исполнения текущий веб-запрос. Пожалуйста, просмотрите трассировку стека для получения дополнительных сведений об ошибке, и где она возникла в деталях code.Exception: System.Data.SqlClient.SqlException:

Web.Config

<configuration> 
     <configSections> 
     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </configSections> 
     <appSettings> 

     <add key="webpages:Version" value="3.0.0.0" /> 
     <add key="webpages:Enabled" value="false" /> 
     <add key="ClientValidationEnabled" value="true" /> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
     </appSettings> 
     <system.web> 
     <compilation debug="true" targetFramework="4.6" /> 
     <httpRuntime targetFramework="4.6" /> 

     <sessionState mode="InProc" timeout="100" /> 
     <authentication mode="Forms"> 
      <forms loginUrl="~/Login/Login" /> 
     </authentication> 
     <roleManager enabled="true" /> 
     </system.web> 
     <connectionStrings> 

     <add name="Hospital_EmployeeEntities" **connectionString="metadata=res://*/Models.Hosp_Employee.csdl|res://*/Models.Hosp_Employee.ssdl|res://*/Models.Hosp_Employee.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;initial catalog=Hospital_Employee;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />** 
     </connectionStrings> 
     <entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
     <providers> 
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, 

EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

Пожалуйста, помогите мне настроить Sql Server 2008 с IIS

ответ

0

добавление нового пользователя в базе данных и использовать User ID=YourUserName;Password=YourPassword; вместо integrated security=True;

или вы можете добавить нового пользователя: IIS APPOOL\DefaultAppPool (или в зависимости от того AppPool вы используете), чтобы у нашей базе данных. (То вы можете использовать integrated security=True;)

Чтобы добавить пользователя в SQL Server, выполните следующее:

  • Перейти к базам данных -> Безопасность -> Логины
  • Щелкните правой кнопкой мыши логины и выберите "Новый Логин" В поле Логин имя, тип IIS AppPool \ YourAppPoolName (не нажимайте кнопку поиска)
  • В качестве альтернативы нажмите на проверку подлинности SQL Server и обеспечивают YOURUSERNAME и ВАШ ПАРОЛЬ
  • нажмите OK
+0

В соответствии с @Davor Dumeljic: я изменил аутентификацию смешанного типа. –

+0

** @ CoOL **: Поскольку я использую ** DefaultAppPool ** под ** Веб-сайт по умолчанию **, а мое имя приложения - DemoMVCApp (это нормально)? поэтому мое имя для входа должно быть ** IIS APPPOOL \ DefaultAppPool **? то мне нужно дать несколько паспортов и нажать ОК? любезно проверьте, что я пишу вещь? –

+0

Вам не нужно указывать пароль для добавления пользователя 'IIS APPPOOL \ DefaultAppPool'. Просто введите имя пользователя, выберите «Проверка подлинности Windows» и нажмите «ОК». – CoOl

0

вы должны сначала включить оба типа Authentification для Windows & пользователей SQL Server (большинство людей здесь первая ошибка)

Затем создать пользователя как @CoOl сказал вам

И в конце добавить строку подключения в вашей сети .config файл

<connectionStrings> 
    <add name="ConString" connectionString="Data Source=_____;Initial Catalog=____;Persist Security Info=True;User ID=_____;Password=______" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
+0

@ Davor Dumeljic: я не могу получить доступ к SQL Server 2008. Просьба проверить версию SQL Server 2008 Microsoft SQL Server Management Studio \t 10.0.1600.22 Microsoft .NET Framework \t 2.0.50727.8662, и я использую DefaultAppPool 4.0 для любой проблемы с версией или любого другого isse. я думаю, что упускаю кое-что - –

0

Issue Fixed: Путеводитель

мы можем добавить нового пользователя в базу данных SQL Server 2008 (здесь Hospital_Employee DB): и новый пользователь: IIS APPOOL \ DefaultAppPool (или какой бы AppPool, который вы используете в диспетчере IIS для этого веб-приложения, здесь я использовал DefaultAppPool). (Затем в строке подключения в файле Web.Config вы можете использовать интегрированную безопасность = True;)

** Для настройки выполните следующие действия **

а, расширить вашу базу данных (здесь: Hospital_Employee) на сервере Sql.
затем разверните узел Безопасность в «Hospital_Employee БД» и
расширить пользователей в безопасности и
Добавить новый пользователь указать имя как
IIS APPOOL \ DefaultAppPool (или в зависимости от того AppPool вы используете). затем нажмите кнопку ОК

б, щелкните правой кнопкой мыши DB "Hospital_Employee DB"
затем нажмите Свойства, затем выберите Права доступа
затем
ПРОВЕРКА "Выполнить" свойство.
c, обновите DB

затем запустите веб-приложение Hosted, затем попробуйте Login.
теперь он получит доступ к БД и отлично работает