繁体   English   中英

无法连接到ASP.NET Web管理工具中的SQL Server数据库

[英]Unable to connect to SQL Server database in ASP.NET Web Admin Tool

就像标题所说的那样,我正在尝试为自己正在创建的网站扮演一些角色。

每当我进入安全选项卡时,就会显示标题中的错误。

我已经使用aspnet_regsql向导为此配置数据库。 数据库创建成功 ,但是仍然出现错误。

到目前为止,这是webconfig

<?xml version="1.0"?>
<configuration>
 <configSections>
   <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
   </sectionGroup>

 </configSections>
 <entityFramework>
  <contexts>
   <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
     <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
   </context>
  </contexts>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
   <parameters>
     <parameter value="v11.0" />
   </parameters>
  </defaultConnectionFactory>
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
 </entityFramework>
  <connectionStrings>
    <add name="SchoolContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <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.webPages.razor>
   <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
     <add namespace="System.Web.Mvc" />
     <add namespace="System.Web.Mvc.Ajax" />
     <add namespace="System.Web.Mvc.Html" />
     <add namespace="System.Web.Optimization"/>
     <add namespace="System.Web.Routing" />
     <add namespace="TESTMVC" />
    </namespaces>
  </pages>
 </system.web.webPages.razor>


 <system.webServer>
  <handlers>
   <remove name="BlockViewHandler"/>
   <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  </handlers>
 </system.webServer>

  <system.web>
   <compilation>
    <assemblies>
     <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
   </compilation>

 </system.web>
</configuration>

我知道我可能在此xml中缺少一些会员标签吗? 谁能帮我修复webconfig文件?

此连接字符串用于显示该数据库中某些内容的页面。 在此保存(localdb)\\ MSSQLLocalDB上,我具有由向导aspnet_regsql创建的aspnetdb。

<connectionStrings>
  <add name="SchoolContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
</connectionStrings>

根据您的评论,您是ASP.NET Membership的新手。 您提到的ASP.Net成员已有10到15年的历史。 微软在那几年取代了它。

这是历史-

  1. ASP.Net成员资格提供程序(使用aspnet_regsql生成表)
  2. ASP.NET通用提供程序
  3. 简单会员资格提供者
  4. ASP.NET身份(最新版本)

由于您也是ASP.Net成员身份的新手,因此我个人建议使用ASP.Net身份。 这是Scott Allen的免费ASP.NET MVC 5基础课程

借助Integrated Security=SSPI ,我相信您将以网站正在运行的任何帐户(可能是apppool身份帐户)连接到SQL Server。 您应该使用SQL创建用户并使用这些凭据进行显式连接,或者添加应用程序池标识以具有权限:

对于本地SQL Server(来自https://blogs.msdn.microsoft.com/ericparvin/2015/04/14/how-to-add-the-applicationpoolidentity-to-a-sql-server-login/ ):

  • 打开SQL Server Management Studio(SSMS)并连接到SQL Server。 在服务器级别打开安全文件夹,而不是数据库的安全文件夹。
  • 右键单击登录名,然后选择“新建登录名”。
  • 对于登录名,键入IIS APPPOOL \\ AppPoolName并单击“不要单击搜索”,然后选择“确定”(如果执行搜索,它将解析为具有ServerName \\ AppPool Name的帐户,而SQL将无法解析该帐户的SID,因为它是虚拟的)
  • 选择该帐户的默认值,然后选择确定以关闭对话框

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM